目的
オブジェクトのリストからあるキーを持つオブジェクトを抽出したい。
具体的には以下のデータ構造のものからキーのリストを与えて、いずれかのキーを持つリストを返してほしい。
// 抽出元のデータ
let data_list = [
{"code":"01", "value":"a"},
{"code":"02", "value":"b"},
{"code":"03", "value":"c"},
{"code":"04", "value":"d"},
{"code":"05", "value":"e"},
{"code":"06", "value":"f"},
];
// 抽出したいキーの値のリスト
let code_list = ["01", "02", "03"];
実装
いちいちfor文を回したくない
以下のように実装した
// filter関数で条件の関数がtrueになるものだけを抽出
let dst_data = data_list.filter(
(element) => {
// 要素のキーが抽出したいキーのリストに含まれているならtrue
return code_list.includes(element.code);
}
);
console.log(dst_data);
参考リンク
Array.prototype.includes()
JavaScriptでforEach, filter, map, reduceとか