Предположу что удобнее было вычленить только числа без учета того какие данные других типов могут быть в массиве. Пример такого решения и опишу.
В js дикая система определения типов (тут подробнее https://bonsaiden.github.io/JavaScript-Garden/ru/#types), и единственный 100% способ определить что в переменной variable
находится число, выглядит так:
if (Object.prototype.toString.call(variable) === '[object Number]') {
// действия для числа
}
зная это, изменим решение Как найти сумму элементов массива - #2 от пользователя andy_gold так, чтобы суммировались только числа:
var arr = [3, 2, '999', 5, 6, [], {
lol: true
}];
function arraySum(array) {
var sum = 0;
for (var i = 0; i < array.length; i++) {
if (Object.prototype.toString.call(array[i]) === '[object Number]') {
sum += array[i];
}
}
return sum
}
console.log(arraySum(arr)) // 16