элемент пропуска соединения javascript - почему это поведение
Я работал сsplice
внутри вложенного цикла for, и я столкнулся с поведением, которое я не мог понять.
var a = [0, 1, 2, 3, 4];
for (b in a) {
console.log(a);
for (c in a) {
console.log(c + '==' + a[c]);
if (c === "1")
a.splice(c, 1);
}
}
console.log(a);
Его вывод странный
[0, 1, 2, 3, 4]
"0==0"
"1==1"
"2==3" // why is index 2 referring to value 3 , whereas it should refer to 2
"3==4"
[0, 2, 3, 4]
"0==0"
"1==2"
"2==4" // index 2 referring to value 4 , whereas it should refer to 3
[0, 3, 4]
"0==0"
"1==3"
[0, 4]
Я склеиваю индекс 1, и он пропускает следующий элемент.
Почему это поведение ...
Здесь оформить заказ:http://jsbin.com/isahoj/3/edit
РЕДАКТИРОВАТЬ:
хорошо, я понимаю, что это смещает индекс после сплайсинга, но я вызываю сплайс после выполнения console.log () ... так как это сплайсинг раньше?