2014-10-03 2 views
1

Я пытаюсь написать код в javascript/jquery и html, который, как я думал, будет довольно простым, но оказывается довольно сложным (для меня). У меня есть программа, которая вычисляет первые числа x последовательности фибоначчи и сохраняет ее в массиве. Я пытаюсь сделать две кнопки, которые будут отображать следующее или предыдущее число в последовательности. Это то, что у меня есть до сих пор.Javascript: как отобразить следующее значение массива при нажатии кнопки

Javascript:

var all = new Array(); 
fib = function (numMax) { 
    for (i = 0, j = 1, k = 0; k < numMax; i = j, j = x, k++) { 
     x = i + j; 
     //window.document.write(x + " "); 
     all[k] = x; 
    } 
}; 

fib(1000); 

fibon = function() { 
    getElementById("mynum").innerHTML = "all[+1]"; 
}; 

HTML:

<input type="text" id="mynum"> 
<button onclick="fibon();">Next</button> 

ответ

4

Вам нужна переменная, которая содержит текущий индекс, а затем увеличить его каждый раз при нажатии.

fibindex = 0; 

function fibon() { 
    if (fibindex >= all.count) { 
     document.getElementById("mynum").value = "We've run out of Fibonacci numbers"; 
    } else { 
     document.getElementById("mynum").value = all[fibindex]; 
     fibindex++; 
    } 
} 

Также обратите внимание, что вы не должны ставить кавычки вокруг использования переменной. Добавьте к вам .value, а не .innerHTML.

DEMO

+0

Индекс OOB check !!! Но да, +1 – tymeJV

+0

Было как раз добавить это, когда вы написали. – Barmar

+0

Не могли бы вы сделать jsfiddle, пожалуйста? – VampireTooth