如何对下面的对象进行迭代,以便生成下面列出的输出?
var obj = { a: "1", b: "2", c: "3" };
预期产出:
索引:0值1:值2:1
index:1 value1:b value2:2
index:2 value1:c value2: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]);
}