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