是一个简单的函数。它将所有数字加到数组中并存储在变量中。问题是,即使不满足退出循环的条件,循环也只能执行一次。我在这里想念东西吗?
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));
答案 0 :(得分:1)
您的代码存在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));
希望,它将解决您的问题。