为啥我不能在对象数组的 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"
我需要提取Name
和ID
的值,但是:
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 来循环访问每个数组