So Entfernen Sie Alle Ungeraden Zahlen In Ein Array Mit Javascript?

Kann jemand diese debug-code? Ich kann nicht für das Leben von mir finden, die (Laufzeit -) Fehler:

function generate_fibonacci(n1, n2, max, out){
    var n = n1+n2;
    if(n<max){
        out.push(n);
        generate_fibonacci(n2, n, max, out);
    }
}

function generate_fibonacci_sequence(max){
    var out = [1];
    generate_fibonacci(0, 1, max, out);
    return out;
}

function remove_odd_numbers(arr){
    for (var i = 0; i < arr.length; i++) {
        if(!(arr[i]%2==0)){
            arr.splice(i, 1);
        }
    }
    return arr;
}

function sum(array){
    var total = 0;
    for (var i = 0; i < array.length; i++) {
        total+=array[i];
    }
    return total;
}

var fib_sq = generate_fibonacci_sequence(4000000);

console.log("Before: " + fib_sq);

remove_odd_numbers(fib_sq);

console.log("After: " + fib_sq);

console.log("WTH?: " + remove_odd_numbers([1,2,3,4,5,6,7,8,9]));

Ausgabe:

Before: 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578
After: 1,2,5,8,21,34,89,144,377,610,1597,2584,6765,10946,28657,46368,121393,196418,514229,832040,2178309,3524578
WTH?: 2,4,6,8
[Finished in 0.3s]

Ich bin verrückt oder so etwas. Für einige Grund, alle ungeraden zahlen sind nicht entfernt. Aber wie man am Ende sehen, es funktioniert perfekt. Ich habe keine Ahnung, was Los ist.

  • Was ist eigentlich der Fehler?
  • Für meine fib_sq, alle ungeraden zahlen sind nicht entfernt. Betrachten Sie die Ausgabe, insbesondere "Nach". Können Sie den code ausführen?
  • Sie reden von einem (Laufzeit -) Fehler; in der Regel bezieht sich auf einen Fehler, ausgelöst durch JavaScript selbst. Ich denke was du meintest ist, dass Sie ein unerwartetes Ergebnis.
  • Ah, bin ich dankbar für die Klarstellung!
InformationsquelleAutor user2316667 | 2013-08-19
Schreibe einen Kommentar