【发布时间】:2019-07-10 07:58:33
【问题描述】:
我正在尝试创建一个基本的 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,或者我将参数列表中的第一个值更改为的任何值。这看起来很简单,但让我摸不着头脑 - 有什么想法吗?
【问题讨论】:
-
是的,这是
return语句的预期行为。 -
另外,你的函数不接受任何输入参数。
-
@AsnimPAnsari 在 JS 中,你不必在函数定义中定义参数列表,参数在调用函数时传递。
arguments是包含所有传递参数的本机对象。 -
@Teemu 谢谢。这对我来说是一个新信息
-
也许你应该回顾一下 javascript 函数是如何工作的。您可以在这里eloquentjavascript.net/03_functions.html 进行操作,也可以修改页面上的示例并执行它们。 console.log(票(25)+票(25)+票(50)+票(25)+票(100));会做你所期望的。正如@Teemu 所说,return 将“返回”值并因此完成循环。
标签: javascript arrays function for-loop