Как сложить все элементы массива 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
2 0
Аватар пользователя Виктория Аблаева
Виктория Аблаева
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()

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

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

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

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

1 1
Познакомьтесь с основами JavaScript бесплатно