BLACK FRIDAY

осталось 4 дня

Скидка 10% и подарок на выбор — при покупке одной программы
При покупке двух программ  — вторая со скидкой 50%

Как сложить все элементы массива js

Ответы
Аватар пользователя Roman Ashikov
Roman Ashikov
27 октября 2021

Можно использовать обычный цикл, но есть более красивое решение. Метод reduce(), принимает в качестве аргумента массив и колбек функцию, которая применяется к каждому элементу массива и таким образом позволяет найти их сумму. Вот пример:

const numbers = [1, 2, 3, 4];
const sumOfNumbers = numbers.reduce((acc, number) => acc + number, 0);
console.log(sumOfNumbers); // => 10
Аватар пользователя Виктория Аблаева
Виктория Аблаева
19 октября 2022

Помимо стандартного перебора значений и красивого метода reduce(), можно воспользоваться функцией высшего порядка map:

const numbers = [1, 2, 3];
let sum = 0;
numbers.map((item) => sum += item);
console.log(sum); // => 6

И для любителей библиотеки Lodash доступен метод _.sum():

const numbers = [1, 2, 3];
console.log(_.sum(numbers)); // => 6

Документация:

_.sum()

Аватар пользователя Ixplo
Ixplo
27 октября 2022

Немного улучшу reduce.

const numbers = [1, 2, 3, 4];
const sumOfNumbers = numbers.reduce((acc, number) => acc + number);

А за такое использование map могут и побить. Если уж и хочется из цикла что-то менять снаружи (что почти всегда плохая идея), то для этого используют forEach. Map возвращает значение, которое должно быть использовано. И map не должен менять ничего извне. Иначе код становится сложноподдерживаемым.

Добавьте ваш ответ

Рекомендуемые курсы

модули
импорты
отладка программы
ошибки
50 часов
Посмотреть
состояние
JSX
компоненты
производительность
26 часов
Посмотреть
middlewares
redux-forms
actions
reselect
5 часов
Посмотреть