やったこと

webサービスを作るときに考えたことを垂れ流します

forEachとspliceを同時に使ったときの動作

javascriptで、forEach(配列の全要素に対して処理を実行する)とsplice(配列のある要素を削除する)を同時に使ったらどうなるか試してみた。

お試しコードは以下。

var tes = ["1", "2", "3", "4", "5"];

tes.forEach(function(value, index){
  if (value == "3"){
    tes.splice(index,1); //"3"の要素を削除
}
  console.log(value);
});

コンソールの出力結果は、
1
2
3
5
となった(4の処理が実行されない)

まぁこうなるわな。。

基本的にforEachの中で配列操作するのって、混乱を招くのでしちゃいけないと思う。