1

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

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

预期输出:

index: 0 value1: a value2: 1  
index: 1 value1: b value2: 2  
index: 2 value1: c value2: 3
4

3 回答 3

4

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

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

如果你的环境是健全的,这应该是可行的;如果没有,您将不得不添加强制hasOwnProperty()检查。

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

于 2013-07-26T07:42:22.413 回答
2

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

Object.keys(obj).forEach(function(key, i){
  console.log('index: '+ i, 'key: '+ key, 'value: '+ obj[key]);
});
于 2013-07-26T07:45:15.267 回答
1

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

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

for(var opt in obj) {
    console.log(opt + ": " + obj[opt]);
}
于 2013-07-26T07:46:19.790 回答