2016-02-26 2 views
0

Я пытаюсь получить и распечатать сумму всех значений, которые заполняют условие if, но до сих пор не удалось.Как добавить результат цикла 'for' в javascript?

Также существует способ разграничения fib() с максимальным значением, скажем, 999999, вместо того, чтобы разграничить его на numMax операций?

fib = function(numMax) { 
    for (i = 0, j = 1, k = 0; k < numMax; i = j, j = x, k++) { 
     x = i + j; 
     if (x % 2 === 0) { 
      sum += x; 
      console.log(x); 
     } 
    } 
}; 
fib(32); 
+3

Вы ищете для [ 'return' заявления.] (Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return) – Pointy

+0

я вижу. Можете ли вы, пожалуйста, пояснить, как я могу применить его в этом случае? Я могу напечатать только первый номер. – tklein

+1

Я догадываюсь, что печатать на вопрос? В настоящее время журнал консоли IS печатает эти значения на консоли. – Damon

ответ

1

Ваша функция может return значение, которые можно хранить в переменной:

fib = function(numMax){ 
    var sum = 0; 
    for(i=0,j=1,k=0; k<numMax;i=j,j=x,k++){ 
    var x = i + j; 
    if (x % 2 === 0){ 
     sum += x; // This is the same like sum = sum + x; 
    } 
    } 
    return sum; // Let's return the calculated sum as the result of the function 
}; 
var result = fib(32); // result contains the value the function returned 
console.log(result); 

Я не уверен, о второй части вашего вопроса. Вы хотите, чтобы numMax не превышал 999999?

fib = function(numMax){ 
    if (numMax > 999999) { 
    numMax = 999999; 
    } 

    var sum = 0; 
    for(i = 0, j = 1, k = 0; k < numMax; i = j, j = x, k++){ 
    var x = i + j; 
    if (x % 2 === 0){ 
     sum += x; // This is the same like sum = sum + x; 
    } 
    } 
    return sum; // Let's return the calculated sum as the result of the function 
}; 
var result = fib(32); // result contains the value the function returned 
console.log(result); 
+0

Да, я искал решение, которое мне не нужно знать заранее, что мне нужно перебирать цикл 32 раза, чтобы не идти более 4 миллионов в последовательности Фибоначчи. – tklein

+1

Итак, вы хотите остановить повторение, если 'sum' становится больше, чем, например. 4 миллиона? Тогда вам нужно взглянуть на [while-loops] (http://www.w3schools.com/js/js_loop_while.asp). –

+0

Спасибо за ваш ответ, первая часть прибила его. Что касается второго, на самом деле я хочу, чтобы 'k' был' <4000000', но я не вижу, как это сделать, не меняя всю структуру того, что у меня есть. – tklein

Смежные вопросы