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」のまま何らかの処理を行うと、 不具合が出る可能性があるので注意が必要です。