特定のキーの値を配列化する(連想配列)

Javascript

連想配列から特定のキーの値を取得して、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) { '三菱ふそう', 'いすゞ' }

コメント

タイトルとURLをコピーしました