連想配列から特定のキーの値を取得して、1つの配列にまとめる方法をメモしておきます。
例えば、次のようなオブジェクトから、makerの配列を抽出したいとき。
var data=[
{
"id": 1,
"name": "エアロスター",
"maker": "三菱ふそう",
},
{
"id": 2,
"name": "キュービック",
"maker": "いすゞ",
},
{
"id": 3,
"name": "エルガ",
"maker": "いすゞ",
}
]
=>["三菱ふそう","いすゞ"]がほしいとき
コード
こういうときこそArray.mapの出番です。このようになります。
var data = [{
"id": 1,
"name": "エアロスター",
"maker": "三菱ふそう",
},
{
"id": 2,
"name": "キュービック",
"maker": "いすゞ",
},
{
"id": 3,
"name": "エルガ",
"maker": "いすゞ",
}
];
// 特定のキーの値を配列として取得する
var a = data.map((item) => {
return item.maker;
});
console.log(a);
結果はこちら↓
[ '三菱ふそう', 'いすゞ', 'いすゞ' ]
重複を消すには?
このままでは重複した値が残ってしまいます。重複した値はnew Set()で除去できます。
// 重複を削除する
var aa = new Set(a);
console.log(aa);
// 結果
// Set(2) { '三菱ふそう', 'いすゞ' }
コメント