2013-07-26 55 views
1

如何升级以下对象以便生成下面列出的输出?对存储在对象中的键值项目进行迭代

var obj = { a: "1", b: "2", c: "3" }; 

预期输出:

指数:0 VALUE1:一个值2:1
索引:1 VALUE1:乙VALUE2:2
指数:2值1:C值2:3

+0

ü应该参阅作为VALUE1键和value2作为值IMHO – DarkBee

+0

http://stackoverflow.com/questions/3068534/getting-javascript-object-key-list – DarkBee

+0

'obj.length'是未定义的简单像这样的对象... – filmor

回答

4

您可以使用for .. in来替代对象的键,并使用单独的索引计数器:

var index = 0; 
for (var key in obj) { 
    console.log("index: " + index + " value1: " + key + " value2: " + obj[key]); 
    ++index; 
} 

如果你的环境理智,这应该是正常的;如果没有,你将不得不添加强制性hasOwnProperty()支票。

在现代浏览器中使用Object.keys()对对象键进行迭代是可能的,但是如果内存太紧,上述方法将更可取。

2

在现代浏览器中,你可以循环是这样的:

Object.keys(obj).forEach(function(key, i){ 
    console.log('index: '+ i, 'key: '+ key, 'value: '+ obj[key]); 
}); 
1

这是一个对象,你试图重复其作为数组。使用for-in结构。

var obj = { a: "1", b: "2", c: "3" }; 

for(var opt in obj) { 
    console.log(opt + ": " + obj[opt]); 
}