0 jest uzyskiwanie pominięte
Jesteś mutacji (zmiana) tablicę gdy jesteś iteracja niego. To jest programowanie bez użycia.
Omówmy ...
i = 0 i 2 jest nawet i dostaje łączone Twoja tablica jest teraz [5, 9, 14, 0, 1, 3, 6, 7]
i = 1 i nawet nie sprawdziliśmy 5, które jest teraz w indeksie 0 ... teraz sprawdzamy 9, które jest nieparzyste, dobrze
i = 2 i 14 jest równe i zostaje splicowane, twoja tablica jest teraz [5, 9, 0, 1, 3, 6, 7]
i = 3 i 0 zostaje pominięte (ponieważ 0 jest teraz w indeksie 2), 1 jest nieparzyste, dobrze
i = 4 jest nieparzysta porządku
i = 5 i dostać nawet łączone
i = 6 jest nieparzysta porządku
Co naprawdę chcesz to jest ...
Array.prototype.filter = function(func) {
var result = new Array();
for (var i = 0; i < this.length; ++i)
if (func(this[i]))
result.push(this[i]);
return result;
}
values = [2, 5, 9, 14, 0, 1, 3, 6, 7];
odd_only = values.filter(function(x) { x % 2 != 0; });
Nie jesteś iteracji wszystkie wartości, trzeba pętli wstecz, ponieważ tablica jest przeindeksowane na każdym spawu. – bfavaretto
miał wrażenie, że może się zdarzyć, ale nie skonfigurował testu wystarczająco dobrze ... ale fajna wskazówka na temat iteracji wstecznej +1! – user1766760
chcesz nieparzystych liczb całkowitych? [2, 5, 9, 14, 0, 1, 3, 6, 7] .filtr (/./. Test,/[13579] $ /) – dandavis