推送未定义的语法错误 JS

Push Undefined syntax error JS

我需要创建一个程序,要求用户将一个值存储在一个数组中,并继续不断地要求添加值,直到他们没有更多的数字要输入到数组中。之后我必须输出不包含零的数组(允许它们输入零,所以我必须从输出中过滤掉它们)和 return 数组的总和。我的程序当前的问题是 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>");
}

}

x != NaN 将不起作用。

!isNaN(x) 将检查变量是否为数字。

x != "NaN" 将检查文本是否按字面意思 "NaN"

最后两个都可以。

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;
}