为什么我不能用for Each迭代对象
Why cant I iterate over Object with for Each
我正在尝试使用forEach数组方法迭代对象。
var obj = {"a":1, "b":2, "c":3};
[].forEach.call(obj, function(n, key) {
console.log(key, n)
})
应打印
a: 1
b: 2
c: 3
这不起作用,因为它在调试器中返回未定义,即使我人为地将长度属性添加到obj-
obj.length = 3;
我如何使这个对象数组像这样,这样我就可以在对象上调用foreach这样的数组方法。我知道还有其他方法可以迭代对象。我只是想知道在这种情况下我做错了什么。
Array.prototype.forEach()
仅适用于数组,不适用于对象。您可以使用Object.keys()
在对象自己的可枚举属性上循环:
var obj = {"a":1, "b":2, "c":3};
Object.keys(obj).forEach(function(key) {
console.log(key, obj[key]);
});
相关文章:
- Rails:试图在javascript(Google Charts API)中嵌入一个adv-ruby(each+迭代器
- 为什么我不能用for Each迭代对象
- 嵌套的异步.each系列堆栈迭代
- 在jquery each()迭代器函数中访问JS对象
- 如何获取在 each 函数中迭代的当前项
- Meteor - #each 数组的迭代,每个第 n 项后插入另一个 HTML 元素
- 将参数传递给下划线 .each 中的命名迭代
- 如何在$.each()循环中保持$.ajax()异步,但对每次迭代的结果做出反应
- 为什么jquery each()不迭代
- 在jQuery的每次迭代之间应用延迟's.each()方法
- 使用“each()”迭代时调用delay()
- 获取jquery each中的最后一次迭代
- 访问句柄中#each迭代器中的父对象值
- 很难让JS使用each和this进行迭代
- .each()函数,每次迭代之间有间隔
- Casperjs使用casper.each迭代链接列表
- 通过find()和each()迭代分配唯一的ID
- 使用jQuery .each迭代关联数组
- node . js,节点.IO -使用"each"迭代元素函数停止服务器
- jQuery .each()迭代由HTML类-不一致的行为取决于顺序类定义