我正在尝试使用通过函数传递的变量访问JSON:
function highlightCategory (category) {
for (var i in data) {
console.log(data[i].category)
}
}
显然,这是行不通的,因为“类别”是我通过函数传递的内容,而不是属性的真实名称,但是我一直尝试尝试不同的可能性。
提前致谢!
最佳答案
data[i][category]
在JS中,
obj.prop
与obj['prop']
是同义词。var foo = {
bar: 'baz'
};
// foo.bar == foo['bar'] == 'baz'
另外,您正在处理的是JavaScript对象,而不是JSON(尽管它可能起源于此)
为遇到此问题并使用ES6的用户更新,现在可以在分配期间使用变量:
const propName = 'bar';
const foo = {
[propName]: 'baz',
}
// foo.bar == foo[propName] == 'baz'
作为引用,在ES6规范的Object Initializer部分中将其视为
ComputedPropertyName
。