次の構造の 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 ]
カスタム ユーティリティ関数が不要になるように、これを実行するためのよりエレガントまたは慣用的な方法はありますか?
注意事項重複の提案単一のオブジェクトを配列に変換する方法について説明します。
ベストアンサー1
これを実現するためのより短い方法は次のとおりです。
let result = objArray.map(a => a.foo);
または
let result = objArray.map(({ foo }) => foo)
確認することもできますArray.prototype.map()
。