8

関数を介して渡す変数を使用して JSON にアクセスしようとしています。

function highlightCategory (category) {
   for (var i in data) {
      console.log(data[i].category)
   }
}

「カテゴリ」は関数で渡すものであり、プロパティの実際の名前ではないため、明らかにこれは機能しませんが、さまざまな可能性を試してみましたがうまくいきませんでした。前もって感謝します!

4

1 に答える 1

19
data[i][category]

JS では、obj.propと同義obj['prop']です。

var foo = {
  bar: 'baz'
};
// foo.bar == foo['bar'] == 'baz'

また、JSON ではなく JavaScript オブジェクトを扱っています (ただし、そこに由来する可能性があります) 。

これに遭遇し、 ES6を使用している場合は、割り当て中に変数を使用できるようになりました。

const propName = 'bar';
const foo = {
  [propName]: 'baz',
}
// foo.bar == foo[propName] == 'baz'

参考までに、これはComputedPropertyNameES6 仕様の Object Initializer セクションの下にあると見なされます。

于 2013-10-10T15:37:38.953 に答える