1. ホーム
  2. javascript

[解決済み] オブジェクトの配列から、プロパティの値を配列として取り出す。

2022-03-18 17:25:55

質問

以下の構造を持つJavaScriptのオブジェクト配列があります。

objArray = [ { foo: 1, bar: 2}, { foo: 3, bar: 4}, { foo: 5, bar: 6} ];

各オブジェクトからフィールドを抽出し、その値を含む配列を取得したい。例えば、フィールド foo を与えると、配列 [ 1, 3, 5 ] .

こんな些細なことでできるんだ。

function getFields(input, field) {
    var output = [];
    for (var i=0; i < input.length ; ++i)
        output.push(input[i][field]);
    return output;
}

var result = getFields(objArray, "foo"); // returns [ 1, 3, 5 ]

カスタムユーティリティ関数が不要になるような、よりエレガントでイディオムな方法はないでしょうか?


の注意点 重複の可能性 を変換する方法について説明しています。 オブジェクト を配列に変換します。

どのように解決するのですか?

ここでは、それを実現するためのより短い方法を紹介します。

let result = objArray.map(a => a.foo);

または

let result = objArray.map(({ foo }) => foo)

を確認することもできます。 Array.prototype.map() .