不重复:Dynamically access object property using variable
如何动态读取JavaScript Object Array属性。
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
动态传递数组名称的最佳方法是什么?
答案 0 :(得分:2)
使用动态属性访问表示法一次不能访问多个属性。您需要将一组键(通常称为“路径”)与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)