JavaScript | Как сложить все нечётные числа в массиве?

JavaScript | Как сложить все нечётные числа в массиве?

Дано

Есть массив:

var massiv = [11, 4, 5, 0, 7.12, 6.4]

Мы хотим узнать сумму всех целых чисел, которые НЕ делятся на 2 без остатка из этого массива. Как это сделать?

 

Шаг № 1 — Фильтруем массив — Отбираем нечётные числа из оригинального массива

Мы будем ориентироваться на два условия:

  1. Остаток от деления на 1 равен нулю
  2. Остаток от деления на 2 не равен нулю

Выражение условия выглядит так:

item % 1 == 0 (true/false)
item % 2 != 0 (true/false)

Теперь мы можем обратиться к методу filter() для нашего массива. Внутрь мы передаём функцию, которая возвращает булев тип от условия.

massiv.filter(i => i % 1 == 0 && i % 2 != 0)

Отфильтрованный массив с чётными числами будет выглядеть так:

[11, 5]

Два условия проверки на нечётное при фильтрации массива - JavaScript
Два условия проверки на нечётное при фильтрации массива — JavaScript

 

Шаг № 2 — Сложение чисел у отфильтрованного массива

Теперь нам нужно просто сложить все элементы нового массива

massiv.filter(i => i % 1 == 0 && i % 2 != 0).map(i=>x+=i, x=0).reverse()[0]

Результат

16

Другой пример

[1, 2, 3, 4, 5, 6].filter(i => i % 1 == 0 && i % 2 != 0).map(i=>x+=i, x=0).reverse()[0]
9

 

Информационные ссылки

JavaScript | Как проверить на нечётное?

JavaScript | Как сложить все числа в массиве?