0

请帮忙!我是 Javascript 新手,所以可能有一个更简单的解决方案。基本上,我需要它提示输入一个数字,然后从该数字倒数到零。一旦它达到零,我需要它计数并停止在相同的提示数字。

一开始我倒数了,然后我把它彻底宰了,我不知道该怎么办。

<script type="text/javascript">
    // get number from user
var startNum = parseInt(prompt("Input a number to start counting down from.",""));

var counter = setInterval(timer, 1000);

console.log(startNum);

function timer() {
    startNum--; // reduce number by 1
    console.log(startNum); 
    if (startNum <= 0) {
        clearInterval(counter);
    }
}

var counter = setInterval(timer2, 1000);

var endNum = 0

function timer2() {
    console.log(endNum)
    endNum++; // add number by 1
    console.log(endNum); 
    if (endNum >= startNum) {
        clearInterval(counter);
    }
}
</script>
4

1 回答 1

0

你这里有几个问题。第一个是 Rob 在评论中指出的。您同时运行这两个功能。

您遇到的另一个问题是您从不存储号码。你只是在本质上减去和增加任何东西。

所以 -

    <script type="text/javascript">
    // get number from user
var startNum = parseInt(prompt("Input a number to start counting down from.",""));
var currentNum = startNum;

var counter = setInterval(timer, 1000);

function timer() {
    console.log(currentNum);
    currentNum -= 1; // reduce number by 1
    console.log(currentNum);
    if (currentNum == 0) {
        clearInterval(counter);
        counter = setInterval(timer2, 1000);
    }
}

function timer2() {
    console.log(currentNum)
    currentNum += 1; // add number by 1
    console.log(currentNum); 
    if (currentNum == startNum) {
        clearInterval(counter);
    }
}
    </script>

像这样的东西应该可以解决问题。基本上创建另一个变量来保存您的起始编号并考虑当前编号和将要更改的值。

这是一个小提琴 - http://jsfiddle.net/w5FM6/

干杯

于 2013-11-04T23:59:05.700 回答