Сравнить числовые значения массивов
Есть например 2 массива
let a = [1,2,3, 'hello',4,5]
b = [1,2,3, true, 4, undefined, 6]
как сделать функцию которая сравнит в них числовые значения и выведет то которое больше по сумме.
Ответы (2 шт):
Автор решения: wololo
→ Ссылка
Попробуйте так:
let a = [1,2,3, 'hello',4,5];
let b = [1,2,3, true, 4, undefined, 6];
function sum(arr)
{
return arr.reduce((prev, val) => Number.isFinite(val) ? prev + val : prev, 0);
}
let res = Math.max(sum(a), sum(b));
console.log(res);
Функцию sum можно переписать так:
function sum(arr)
{
//В res_sum будем накапливать сумму.
let res_sum = 0;
//Перебираем элементы массива
for (let i = 0; i < arr.length; ++i)
//Если элемент маcсива число, отличное от ±Infinity и NaN, то...
if (typeof arr[i] === "number" && isFinite(arr[i]))
res_sum = res_sum + arr[i];
return res_sum;
}