Как найти сумму элементов массива

Предположу что удобнее было вычленить только числа без учета того какие данные других типов могут быть в массиве. Пример такого решения и опишу.

В 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
1 лайк