我见过很多不同的方式来访问对象数组中的值。一个是arr.forEach(Function)
在其功能仅仅是一个for...in
访问对象数组中的值?
,但林好奇,为什么2个for...in
功能不起作用,例如:
[{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }]
(来自freeCodeCamp两者)。
这工作:
function myFunction (item, index) {
for(var key in item) {
console.log(item[key])
}
}
arr.forEach(myFunction
(打印所有精值)
但如何走到这不起作用:
for(key in arr)
{
for(value in key)
{
console.log(key[value];
}
}
我认为这会工作,因为我们可以执行arr [key](并打印出外部循环中的对象,但不能以这种方式访问这些值)
编辑:
旁注:是有可能对我打印出每个子键/值对:IE例如在数组索引0到打印出"first: "Romeo"
然后"last: "Montague"
'为/ in'不应阵列中使用,因为它们将迭代的对象,包括继承的的所有属性。 'for/in'应该专门用于对象。 –
查看此http://stackoverflow.com/questions/500504/why-is-using-for-in-with-array-iteration-a-bad-idea以获得更多讨论。 –