JavaScript 配列 削除、変更を for文でsplice()使うときに気をつけること
例 配列から奇数を削除する
[1,2,3,4,5]
[10,25,37,42,54]
[3,5,7]
for(var i=0; i<array.length; i++)
上のような+1ずつ増やすfor文を使って配列をspliceで削除していくと、参照値より前のindex番号が変わるため、
+1ずつ増やすfor文ではなく、配列を後ろのindex番号から参照していく-1ずつ減らしていくfor文のやり方だと、参照の前のindex番号は変わらないので、配列からfor文とspliceを使って奇数を削除することができます。
成功例
for(var i=array.length-1; i>=0; i--){ if(array[i] % 2 != 0){ array.splice(i,1); } }
+1ずつするやり方
参照値の前のindex番号が変わってしまう
失敗例
for(var i=0; i<array.length; i++){ if(array[i] % 2 != 0){ array.splice(i,1); } }