Название этого поста может быть неуместным, но у меня возникают трудности при попытке объяснить мою проблему более подробно. Указанная проблема была исправлена, но я не понимаю, почему это произошло.
У меня ранее был этот код:
var SumElements = (arr) => {
let count = 0;
let ignored = [];
arr.forEach(i => {
if(isNaN(i)) {
ignored.push(i);
return;
}
count = count + i;
console.log(count);
});
return [count, ignored];
}
Это был мой тестовый пример: console.log(SumElements([3, "f", 3, "9", "o", 3, 1]));
Выход:
3
6
69
693
6931
[ '6931', [ 'f', 'o' ] ]
Ожидаемый результат: [10, ['f', '9', 'o']]
.
Я изменил isNaN(i)
на typeof i !== "number"
, и результат был ожидаемым [ 10, [ 'f', '9', 'o' ] ]
.
Почему я получил странные результаты при первой редакции кода?