我需要创建一个程序,要求用户输入一个存储在数组中的值,并继续询问要添加的值,直到他们没有更多要输入数组的数字。之后我必须输出不包含零的数组(它们允许输入零,所以我必须从输出中过滤掉它们)并返回数组的总和。我当前对我的程序的问题是arr.push(x)
当前正试图在函数arrin中推送一个未定义的值。我感觉好像有一个更好的方式来解决这个问题,而不是我现在正在努力,所以我需要全力以赴。
var x = parseInt(prompt("Enter a number, to exit enter NaN", "0"), 10);
var y = arrin(x);
var arr = [];
var s;
function arrin(x) {
if(x != NaN){
arr.push(x)
x = parseInt(prompt("Enter a number, to exit enter NaN", "0"), 10);
y = arrin(x);
}else{
document.write("<p>"+arr.toString()+"</p>");
s = sum(arr);
doucment.write("<p> The sum of all elements in the array is "+s+"</p>");
}
}
答案 0 :(得分:0)
x != NaN
无效。
!isNaN(x)
将检查var是否为数字。
x != "NaN"
将检查文字是否按字面意思&#34; NaN&#34;
最后两个中的任何一个都可以。
var arr = [];
var y = arrin(0);
var s;
function arrin(x) {
if (!isNaN(x)) {
if (x != 0) arr.push(x)
x = parseInt(prompt("Enter a number, to exit enter NaN", "0"), 10);
y = arrin(x);
} else {
document.write("<p>" + arr.toString() + "</p>");
s = sum();
document.write("<p> The sum of all elements in the array is " + s + "</p>");
}
}
function sum() {
var t = 0;
for (var i = arr.length; i--;) t += parseInt(arr[i]);
return t;
}
&#13;