javascript - 迭代对象数组 javascript - 奇怪的行为?

标签 javascript

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 循环,则无法获取属性名称。


注意:

  1. For in 循环最适合名称-值对。
  2. For Each 循环最适合迭代值。例如:数组和对象,如果您对属性名称不感兴趣的话。

关于javascript - 迭代对象数组 javascript - 奇怪的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6565281/

相关文章:

javascript - 无法将 Jimp 导入 Angular 6 进行图像处理

javascript - 在 Facebook/Messenger 中打开深层链接时无法打开 native 应用程序(在其他应用程序中工作...)

javascript - 使用 RegExp 获取一系列前后可能有空格或没有空格的单词

javascript - 传递两个 document.getElementById 不起作用

javascript - 在 Javascript 中获取查询参数的最佳方式

javascript - 用于在 ASP.NET MVC 中动态生成 JavaScript 的混淆器

javascript - 将 x-webkit-speech 与文本区域一起使用

javascript - 如果按顺序单击按钮则执行函数

javascript - Div 页面过渡

javascript - 在 jQuery/JS 中将文件读入字符串