javascript - For 循环仅在数组参数上运行一次
问题描述
我正在尝试创建一个基本的 for 循环,它将遍历函数的参数。可以有可变数量的参数,因此我为此目的使用内置的“参数”对象。但是,嵌套在函数内的 for 循环似乎在参数的第一个索引之后停止。
我在这里阅读了一些类似的查询,这些查询建议在 for 循环中声明变量,以便它是函数的本地值而不是全局值,但这似乎也不起作用。
function tickets(){
var change = 0;
for(var j = 0;j < arguments.length; j++) {
if (arguments[j] == 25) {
return(change + 1);
}
else if(arguments[j] == 50) {
return(change - 1);
}
else {
return(change - 3);
}
}
}
console.log(tickets(25, 25 ,50, 25, 100))
我希望上面的代码能够记录:
1 1 -1 1 -3
但它只返回 1,或者我将参数列表中的第一个值更改为的任何值。这看起来很简单,但让我摸不着头脑——有什么想法吗?
解决方案
那么函数在第一次返回时停止,您必须将所有结果添加到数组中并在循环结束后返回数组
function tickets(){
var change = 0;
var responses = [];
for(var j = 0;j < arguments.length; j++) {
if (arguments[j] == 25) {
responses.push((change + 1));
}
else if(arguments[j] == 50) {
responses.push((change - 1));
}
else {
responses.push((change - 3));
}
}
return responses;
}
console.log(tickets(25, 25 ,50, 25, 100))