下面是一个简单的函数。它将数组中的所有数字相加并存储在变量中。问题是,即使不满足退出循环的条件,循环也只执行一次。我在这里遗漏了什么吗?
const numChecker = (...args) => {
let x = args;
let y;
let i;
for (i = 0; i < x.length - 1; i++) {
if ((typeof x[i]) === "number") {
y += x[i];
}
return y;
}
}
console.log(numChecker("A", "B", "C", 100, 300, 200));
最佳答案
您的代码存在 3 个问题:-
- 第一个是
let y;
. - 第二个是
i < x.length - 1
. - 你正在做
return y
在错误的地方。
在第一期中,当你声明像这样的变量 let y
,然后 typeof(y)
未定义。在这里,您要存储 sum of numbers
,所以变量 y
类型必须为 number
。因此,您必须像 let y = 0
那样声明并初始化它。 ;
在第二个循环中,数组将被解析为倒数第二个元素。 x[4]
在你的情况下。所以,循环中的条件应该像 i < x.length
.
最后,您必须return y
在循环之外,以便将总和打印在 console
上将是所有 numbers
在 array
.
检查下面的代码段。
const numChecker = (...args) => {
let x = args;
let y = 0;
let i;
for (i = 0; i < x.length; i++) {
if ((typeof x[i]) === "number") {
y += x[i];
}
}
return y;
}
console.log(numChecker("A", "B", "C", 100, 300, 200));
希望它能解决您的问题。
关于javascript for 循环提前退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52638512/