Javascript数组中偶数的总和?

时间:2014-03-09 02:17:04

标签: javascript for-loop sum fibonacci

试图总结斐波纳契序列的偶数。为什么不将所有数字汇总在一起并仅使用最后一个数字?如何将所有偶数相加? 这是我的代码:

function fibonacciSum(){
    var i;
    var fib = new Array ();

    fib[0] = 0;  
    fib[1] = 1; 
        for(i=2; i<=10; i++){  
            fib[i] = fib[i-2] + fib[i-1]; 
            var number = parseInt(fib[i]);   
            var sum = 0;  
            if (number % 2 == 0) {  
                var result = sum += fib[i];  
                }  
         }  
    console.log(result);   
}

3 个答案:

答案 0 :(得分:3)

var sum = 0;

这是在你的循环中重置每次迭代sum。它必须在循环之外。

答案 1 :(得分:2)

在您的解决方案中,for循环的每次运行都会重置“sum”与该行: var sum = 0;。在循环外设置为0。

function fibonacciSum(){
    var i;
    var fib = new Array ();
    fib[0] = 0;  
    fib[1] = 1; 
    var sum = 0;
        for(i=2; i<=10; i++){  
            fib[i] = fib[i-2] + fib[i-1]; 
                var number = parseInt(fib[i]);    
                if (number % 2 == 0) {  
                    var result = sum += fib[i];  
                }  
         }  
    console.log(result);   
}

答案 2 :(得分:2)

你应该在for循环之外声明sum和result。试试这个:

function fibonacciSum(){
    var i;
    var fib = new Array ();

    fib[0] = 0;  
    fib[1] = 1;
    var sum = 0; 
    var result = 0; 
    for(i=2; i<=10; i++){  
        fib[i] = fib[i-2] + fib[i-1]; 
        var number = fib[i]; 
        if (number % 2 == 0) {  
            result = sum += fib[i];  
        }  
     }  
    console.log(result);   
}