JavaScript でオブジェクトの配列から個別の値を取得するにはどうすればよいでしょうか? 質問する

JavaScript でオブジェクトの配列から個別の値を取得するにはどうすればよいでしょうか? 質問する

以下のものがあると仮定します:

var array = 
    [
        {"name":"Joe", "age":17}, 
        {"name":"Bob", "age":17}, 
        {"name":"Carl", "age": 35}
    ]

次のような結果配列が得られるように、すべての異なる年齢の配列を取得できる最良の方法は何ですか。

[17, 35]

各配列を反復処理して「age」の値をチェックし、別の配列の存在をチェックし、存在しない場合は追加する必要がないように、データを構造化する別の方法や、より良い方法はありますか?

繰り返し処理せずに個別の年齢だけを取り出す方法があれば...

現在の非効率的な方法を改善したいのですが...「配列」がオブジェクトの配列ではなく、一意のキー (つまり「1,2,3」) を持つオブジェクトの「マップ」であることを意味するのであれば、それも問題ありません。最もパフォーマンス効率の良い方法を探しているだけです。

以下は私が現在行っている方法ですが、私にとっては、反復は機能するにもかかわらず、効率が悪いように思えます...

var distinct = []
for (var i = 0; i < array.length; i++)
   if (array[i].age not in distinct)
      distinct.push(array[i].age)

ベストアンサー1

ES6/ES2015 以降を使用している場合は、次のように実行できます。

const data = [
  { group: 'A', name: 'SD' }, 
  { group: 'B', name: 'FI' }, 
  { group: 'A', name: 'MM' },
  { group: 'B', name: 'CO'}
];
const unique = [...new Set(data.map(item => item.group))]; // [ 'A', 'B']

ここ実行方法の例です。

おすすめ記事