Есть 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));
Надеюсь, это решит вашу проблему.