为什么我不能迭代对象for Each

时间:2016-05-02 18:43:10

标签: javascript

我试图用forEach数组方法迭代一个对象。

var obj = {"a":1, "b":2, "c":3};
[].forEach.call(obj, function(n, key) {
    console.log(key, n)
})

应该打印

一个:1

B:2

c:3

这不起作用,因为它在调试器中返回undefined,即使我人为地向obj添加了一个length属性

obj.length = 3;

如何制作这个对象数组,我可以在对象上调用像foreach这样的数组方法。我知道还有其他方法来迭代一个对象只是想知道我在这种情况下做错了什么。

1 个答案:

答案 0 :(得分:1)

Array.prototype.forEach()仅适用于数组而不适用于对象。您可以使用Object.keys()遍历对象自己的可枚举属性:

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

Object.keys(obj).forEach(function(key) {
    console.log(key, obj[key]);
});