如何迭代以下对象以便生成下面列出的输出?
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
如何迭代以下对象以便生成下面列出的输出?
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
您可以使用for .. in
来迭代对象的键,并为索引使用单独的计数器:
var index = 0;
for (var key in obj) {
console.log("index: " + index + " value1: " + key + " value2: " + obj[key]);
++index;
}
如果你的环境是健全的,这应该是可行的;如果没有,您将不得不添加强制hasOwnProperty()
检查。
在现代浏览器中使用对象键迭代Object.keys()
是可能的,但如果内存紧张,上述方法会更可取。
在现代浏览器中,您可以像这样循环:
Object.keys(obj).forEach(function(key, i){
console.log('index: '+ i, 'key: '+ key, 'value: '+ obj[key]);
});
它是一个对象,您正试图将其作为数组进行迭代。使用 for-in 构造。
var obj = { a: "1", b: "2", c: "3" };
for(var opt in obj) {
console.log(opt + ": " + obj[opt]);
}