JavaScript - indexOf() を使って配列の要素を削除する
配列の要素を削除する方法はいくつかあります。
ここでは、indexOf() メソッドを使って、削除要素のインデックスを特定し、 要素を削除する方法を紹介します。
indexOf() メソッドの概要
indexOf() メソッドは、指定した値を配列中から検索し、 最初に見つかったインデックスを返します。
見つからなかった場合は -1 を返します。
console.log([1,2,3].indexOf(3)); // 2
console.log([1,2,3].indexOf(5)); // -1
indexOf() を使って配列の要素を削除する
次のサンプルコードは、indexOf() を使って削除要素のインデックスを特定し、 該当要素があれば削除しています。
var arr = [1, 2, 3, 4, 5];
var del_value = 3; // 削除対象の値
var idx = arr.indexOf(del_value); //検索
if (idx != -1){
arr.splice(idx, 1);
}
console.log(arr); // Array [ 1, 2, 4, 5 ]
この方法は、該当要素が1つの場合にのみ有効なロジックです。
該当要素が複数の場合は、filter() メソッドを使った方が簡単です。
filter() メソッドを使って配列の削除を削除する
次のコードは、filter() メソッドを使った場合です。
関連記事: 配列から特定条件の要素を削除する filter()
var arr = [1, 2, 3, 4, 5, 3];
var del_value = 3;
var new_arr = arr.filter(function(x){return x != del_value;})
console.log(new_arr); // Array [ 1, 2, 4, 5 ]