繁体   English   中英

如何将所有项目保留在数组函数中? 使用Javascript

[英]How would I keep all items inside an array function? Javascript

我如何将在函数getNum()输入的所有数字放入finalArr Array ,而无需移动var finalArr = []; 它在功能之外? 此刻,无论我运行脚本有多少个周期,它只会显示我输入的最后一个数字。

function getNum () {

     do {    
         number = Number(prompt("Enter a number:"));
     }
     while (number < 0);

     return number;

}

function finalArray () {

    var finalArr = [];
    finalArr.unshift(number);
    alert(finalArr);

    return;
}

do {
     getNum();
     finalArray();
     var no = prompt("Enter n to stop");
}
while (no != "n");

您必须在getNum()方法中调用finalArry()方法,并将其从do循环中删除。

为什么不使用递归函数而不是while循环?

看下面的代码:

 var array = []; function getNum () { var no = prompt("Enter n to stop"); if (no === "n") { console.log("the final array is"); console.log(array); } else { array.push(no); getNum(); } } getNum(); 

编辑:我不明白为什么要在函数内部声明Array ,在函数内部声明的每个变量都位于该范围内。 但是,如果您有必要,可以将Array值传递给函数,在函数内部声明Array ,以获取您传递的值,然后返回生成的Array ,这有点棘手,但是可以使用:

 var array; function finalArray(array, number) { var finalArr = array || []; finalArr.push(number); return finalArr; } function getNum() { var no = prompt("Enter a number. Enter n to stop"); if (no === "n") { console.log("the final array is"); console.log(array); } else { array = finalArray(array, +no); getNum(); } } getNum(); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM