如何使用Array打印偶数

时间:2015-07-28 03:49:46

标签: javascript

我刚开始使用Javascript并试图让这个脚本运行,它通过将数据存储在数组中来打印偶数。但似乎页面继续加载而没有输出。

PS注意:我是Java脚本的新手,所以尝试以简单的方式解释。

var evenArray = [];
var userInput = Number(prompt("Please enter the Number"));
var even = 0;
while(even <= userInput)
{
    evenArray[even] = even + 2;
}
alert(evenArray);

5 个答案:

答案 0 :(得分:1)

你需要在某个时刻实际递增 even变量,否则它将永远保持为零,你的循环永远不会退出。另外,你没有通过将2加到任意数字得到偶数,你可以通过任意数乘以2得到它。

这意味着:

while(even <= userInput) {
    evenArray[even] = even * 2;
    even = even + 1;
}

输入7,即可获得:

0,2,4,6,8,10,12,14

如果您需要偶数最多输入的数字,您可以按如下方式修改循环:

while(even <= userInput) {
    evenArray.push(even);
    even = even + 2;
}

但是,一旦您熟悉Javascript,您可能需要查看一些更高级的功能,例如Array.prototype方法.apply().map()。然后,您可以将代码缩减为:

var sz = Number(prompt("Please enter the Number"));
var evenArray = Array.apply(null,{length: sz / 2 + 1}).map(function(n){
    return (arguments.callee.even = (arguments.callee.even + 2) || 0)
  });
alert(evenArray);

apply创建一个所需长度的数组,然后使用map函数将其所有值设置为偶数。

可能不像其他解决方案那样可读,但对于那些精通语言的人来说它是可读的,当面试官意识到你有多聪明时,它甚至可以当场为你提供工作机会: - )

答案 1 :(得分:1)

您需要增加-c变量并使用even将数字even推送到数组:

.push()

答案 2 :(得分:0)

问题是你没有更新退出循环的条件:

while(even <= userInput)

试试这一行:

evenArray.push(even);
even += 2;

答案 3 :(得分:0)

此代码对我来说效果很好感谢Xufox指出我的循环错误和其他人

    var evenArray = [];

    var userInput = Number(prompt("Please enter the Number"));

    for(var even = 0 ; even < userInput; even = even + 2)
    {
        evenArray[even] = even + 2;

    }

    alert(evenArray);

答案 4 :(得分:0)

<!DOCTYPE html>
<html>
<head>
    <title>Even</title>
</head>
<body>
    <p id="demo"></p>
    <script>
        var label = [];//Declare An Empty Array With A Variable
        for (var even = 2; even < 12; even+=2) { //Initiate For Loop
        label.push(even);//Sends The Values Using For Loop To the Empty Variable 
        }
        document.getElementById('demo').innerHTML = (label);//Print The o/p
    </script>
</body>
</html>

本规范有助于初学者了解发生的事情。希望它被认为是有帮助的。如果您对推()有任何疑问..请访问w3schools.com并在javascript中搜索。你一定会理解上面的节目......干杯!!!!享受编程