element pomijający splot javascript - dlaczego to zachowanie

Pracowałem zsplice wewnątrz zagnieżdżonej pętli i natknąłem się na zachowanie, którego nie mogłem zrozumieć.

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);

Jego wyjście jest dziwne

    [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]

Łączę indeks 1 i pomija następny element.

Dlaczego to zachowanie ...

Tutaj zamówienie:http://jsbin.com/isahoj/3/edit

EDYTOWAĆ:
ok, rozumiem, że zmienia indeks po splicingu, ale po wywołaniu console.log () ... dzwonię do splice ... więc jak to zostało splicowane wcześniej?

questionAnswers(3)

yourAnswerToTheQuestion