不重复:Dynamically access object property using variable
如何动态读取 JavaScript 对象数组属性。
var person = {
name: "Ravi",
age: 25
friends: [{
name: "Suresh"
},
{
name: "Nitin"
},
{
name: "Argha"
}
]
}
所以,如果我想动态读取任何属性,我可以使用
var dynamicProperty = 'age';
person[dynamicProperty] // Output : 25
但是数组失败。
var dynamicProperty = 'friends[1]';
person[dynamicProperty].name // Output : undefined
动态传递数组名称的最佳方法是什么?
最佳答案
您无法使用动态属性访问表示法一次访问多个属性。您需要将键数组(通常称为“路径”)与 Array#reduce
结合使用。 :
var person = {
name: "Ravi",
age: 25,
friends: [{
name: "Suresh"
},
{
name: "Nitin"
},
{
name: "Argha"
}
]
}
function access (o, k) { return o[k] }
var result = ['friends', 1, 'name'].reduce(access, person)
console.log(result)
关于javascript - 使用变量动态访问对象的数组属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43641228/