var myArr = [{a:1, b:2}, {c:3, d:4}];
for (var item in myArr) {
console.log(item);
}
Item 返回键(例如:0、1)而不是对象本身。为什么?
最佳答案
Douglas Crockford 在 JavaScript: The Good Parts 中推荐避免使用 for in
语句。
如果您使用 for in
循环访问对象中的属性名称,结果不会排序。
for in
循环最适合迭代 name-value 对,for each
循环最适合迭代值,即数组.
例如,
var o = {'name':'Batman', 'age':33, 'city':'Gotham City'};
for (var p in o) {
console.log(p+': '+o[p]);
}
如果我们对上述对象使用 For Each 循环,则无法获取属性名称。
注意:
- For in 循环最适合名称-值对。
- For Each 循环最适合迭代值。例如:数组和对象,如果您对属性名称不感兴趣的话。
关于javascript - 迭代对象数组 javascript - 奇怪的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6565281/