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 ]