我刚开始使用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);
答案 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中搜索。你一定会理解上面的节目......干杯!!!!享受编程