やりたいこと
JavaScriptでArrayの要素を削除するにはいくつかの方法がありますが、だいたい使いにくいです。
(shift,popは使い時が限られるしslice,spliceは個人的に使いにくい。)
ここでは汎用的に使用できるfilter()の使用方法を紹介します。
使用方法
filter関数の概要
filter関数には関数を引数として渡します。
渡した関数はArrayのエレメント毎に呼び出されます。
関数がtrueを返すとelementは保持され、falseを返すとelementが削除されます。
返り値はelementが条件により削除されたArrayです。
元のArrayは変更されないことに注意してください。
indexで削除
Arrayのindexで削除するコードは以下の通りです。
const elements = ["element0", "element1", "element2", "element3", "element4"];
const result = elements.filter((element, index) => index != 2);
console.log(result);
結果:
Array ["element0", "element1", "element3", "element4"]
説明
filterに渡す関数の第2引数はelementのインデックスです。
上記例ではインデックスが2のエレメントを削除しています。
条件で削除
各要素を条件で削除するコードは以下の通りです。
const elements = ["element0", "element1", "element2", "element3", "element4"];
const result = elements.filter((element) => element != "element1");
console.log(result);
結果:
Array ["element0", "element2", "element3", "element4"]
説明
filterに渡す関数の第1引数はエレメントです。
上記例ではエレメントが”element1″の場合に削除しています。
参考にさせていただいたサイト

Array.prototype.filter() - JavaScript | MDN
filter() は Array インスタンスのメソッドで、指定された配列の中から指定された関数で実装されているテストに合格した要素だけを抽出したシャローコピーを作成します。
コメント