为啥我不能在对象数组的 for-in 循环中访问对象属性? [复制]

Posted

技术标签:

【中文标题】为啥我不能在对象数组的 for-in 循环中访问对象属性? [复制]【英文标题】:Why can’t I access object properties in a for-in loop over an array of objects? [duplicate]为什么我不能在对象数组的 for-in 循环中访问对象属性? [复制] 【发布时间】:2019-02-10 22:18:36 【问题描述】:

我目前正在使用 SheetSU API 从 Google 表格文件中读取数据。

var members = Sheetsu.read("URL", , successFunc);

目前,successFunc 是一个将输入 data 转换为 console.log() 的函数。

数据导入如下:(14)..,..,......,该字典中的每个对象如下所示:

0: Name: "First Last", ID: "12536723", Status: "Member"
1: Name: "First Last", ID: "12371238", Status: "Member"
...
14: Name: "First Last", ID: "12341228", Status: "Member"

我需要提取NameID 的值,但是:

for (var x in data) 
    console.log(x)

= 0, 1, 2, ..., 14(作为整数而非对象)

for (var x in data) 
    console.log(x.Name)

= undefined, undefined, ..., undefined

【问题讨论】:

查看有关将for...in 与数组一起使用的警告和替代方法:developer.mozilla.org/en-US/docs/Web/javascript/Reference/… @Igor Op 没有询问区别,甚至没有提及for of How do I loop through or enumerate a JavaScript object?的可能重复 【参考方案1】:

x 不是一个值它是一个 index 像 0,1 ...14,您可以使用 of 或在 in 内使用 data[x]

var data = [
        Name: "First Last",
        ID: "12536723",
        Status: "Member"
    , 
        Name: "First Last",
        ID: "12371238",
        Status: "Member"
    ,
    
        Name: "First Last",
        ID: "12341228",
        Status: "Member"
    
]

for (var x in data) 

    console.log(data[x].Name); //x is not a value It is a index like 0,1 ...14



for (var x of data) 

    console.log(x.Name); // use of which prints x as object not index

【讨论】:

What's matter down voter 最好给出反馈,而不是毫无意义地投票!。 这对我来说是正确的答案 谢谢@Emeeus!。

以上是关于为啥我不能在对象数组的 for-in 循环中访问对象属性? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

嵌套 JSON 对象中的数组使用 for-in 来循环访问每个数组

为啥我不能访问这个数组 ForEach 循环中的数据? SwiftUI

js 关键字 in 的使用方法

为啥 for-in 循环不打印我想要的内容? [复制]

Python for-in Loop常见遍历方法

为啥我不能使用 foreach 循环更新数组中的数据?