JavaScript - ループ(for 文)を使って配列の要素を削除する

JavaScript では、配列の要素を削除する方法が複数あります。

ここではループ(for 文)を使って、配列の特定条件の要素を削除する方法を紹介します。

ループ(for 文)を使って要素を削除する

次のサンプルコードは、for 文と splice() メソッドを使って、 条件に一致する要素を削除します。


var arr = [3, 1, 2, 3, 4, 5, 3];

var del_value = 3; // 削除する値

for (var i = 0; i < arr.length; i++){
	if (arr[i] == del_value){
		arr.splice(i, 1);
		if (i > 0) {i--;}
	}
}

console.log(arr); // Array [ 1, 2, 4, 5 ]

注意点

上のコードで、カウンタをマイナスしている部分に注意してください。


if (i > 0) {i--;}

上記の部分を次のように


i--;

とだけ書いた場合は問題が出てきます。

最初の要素を削除した時に、カウンタをマイナスすると、 カウンタが「-1」となってしまいます。

「-1」のまま何らかの処理を行うと、 不具合が出る可能性があるので注意が必要です。