迭代存储在对象中的键值项

时间:2013-07-26 07:39:38

标签: javascript object

如何对下面的对象进行迭代,以便生成下面列出的输出?

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

预期产出:

  

索引:0值1:值2:1
  index:1 value1:b value2:2
  index:2 value1:c value2:3

3 个答案:

答案 0 :(得分:4)

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

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

如果你的环境是理智的,这应该是有效的;如果没有,您必须添加强制性hasOwnProperty()支票。

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

答案 1 :(得分:2)

在现代浏览器中,您可以像这样循环:

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

答案 2 :(得分:1)

它是一个对象,您尝试将其作为数组进行迭代。使用for-in构造。

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

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