根据for each...in loop的 MDN 页面,此构造已被弃用。有没有做同样事情的替代品?for...of 循环不会迭代非整数(自己的可枚举)属性。如果没有替代方案,那么他们为什么要弃用它呢?
问问题
32522 次
3 回答
17
要遍历对象的所有属性obj
,您可以这样做:
for (var key in obj) {
console.log(key, obj[key]);
}
如果你想避免继承属性,你可以这样做:
for (var key in obj) {
if (!obj.hasOwnProperty(key)) continue;
console.log(key, obj[key]);
}
于 2012-09-28T09:30:45.597 回答
12
您可以使用新的ECMAScript 5th Edition函数:
Object.keys(obj).forEach(function (key) {
console.log(key, obj[key]);
});
于 2012-09-28T09:50:06.947 回答
3
有没有做同样事情的替代品?
一个for ... in
循环,你在代码块中做的第一件事就是复制foo[propertyname]
到一个变量。
于 2012-09-28T09:30:49.480 回答