Дано
Есть массив:
var massiv = [11, 4, 5, 0, 7.12, 6.4]
Мы хотим узнать сумму всех целых чисел, которые НЕ делятся на 2 без остатка из этого массива. Как это сделать?
Шаг № 1 — Фильтруем массив — Отбираем нечётные числа из оригинального массива
Мы будем ориентироваться на два условия:
- Остаток от деления на 1 равен нулю
- Остаток от деления на 2 не равен нулю
Выражение условия выглядит так:
item % 1 == 0 (true/false) item % 2 != 0 (true/false)
Теперь мы можем обратиться к методу filter() для нашего массива. Внутрь мы передаём функцию, которая возвращает булев тип от условия.
massiv.filter(i => i % 1 == 0 && i % 2 != 0)
Отфильтрованный массив с чётными числами будет выглядеть так:
[11, 5]

Шаг № 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