JavaScript:计算斐波那契数列值<10000的所有偶数之和

JavaScript: calculate the sum of all even numbers in Fibonacci sequence values < 10000

我必须完成这个练习,但我没有得到我需要的结果。

规范是:计算斐波那契数列中小于 10,000 的所有偶数的总和。前几个数字的总和为:2, 8, 34, 144, 610.

我有一个 fiddle 生成此输出:10, 44, 188, 798, 3382.

var x = 1;
var y = 2;
var sum = 0;
var limit = 10000;
var evensum = 2;

while ((x + y) < limit) {
    sum = x + y;
    x = y;
    y = sum;

    if (sum % 2 === 0) {
        evensum += sum;
    }
    console.log(evensum);
}

fiddle link

有人可以帮我找出我缺少的部分来完成这个练习吗?

非常感谢。

更新 感谢所有发布解决方案的人。他们都工作得很好。

您正在打印偶数的总和。如果您想记录每个偶数 fib 数,您需要记录 sum 变量:

if (sum % 2 === 0) {
    evensum += sum;
    console.log(sum); // <---- log here
}
// console.log(evensum);

只需将 console.log 行移到 while 循环之外。

while ((x + y) < limit) {
    sum = x + y;
    x = y;
    y = sum;

    if (sum % 2 === 0) {
        evensum += sum;
    }

    console.log('Sum: ' + sum);
}

console.log('Full Sum of even Fibonacci numbers: ' + evensum);

var i;
var fib = []; // Initialize array!

fib[0] = 0;
fib[1] = 1;
for(i=2; i<=20; i++)
{
    // Next fibonacci number = previous + one before previous
    // Translated to JavaScript:
    fib[i] = fib[i-2] + fib[i-1];
    if(fib[i]%2==0){
      document.write(fib[i]+" ");
    }
}

var x = 0
var y = 1
var sum = 0;
var limit = 10000;
var evensum = 0;

while ((x + y) < limit) {
  sum = x + y;
  x = y;
  y = sum;
  if (sum % 2 == 0) {
  console.log(sum);
 }
}

工作 fiddle - https://jsfiddle.net/dotnojq8/1/