![](/img/trans.png)
[英]How would I move these items inside an array into objects within an array?
[英]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.