Как сложить все элементы массива js
Можно использовать обычный цикл, но есть более красивое решение. Метод reduce()
, принимает в качестве аргумента массив и колбек функцию, которая применяется к каждому элементу массива и таким образом позволяет найти их сумму. Вот пример:
const numbers = [1, 2, 3, 4];
const sumOfNumbers = numbers.reduce((acc, number) => acc + number, 0);
console.log(sumOfNumbers); // => 10
Помимо стандартного перебора значений и красивого метода 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()
Немного улучшу reduce
.
const numbers = [1, 2, 3, 4];
const sumOfNumbers = numbers.reduce((acc, number) => acc + number);
А за такое использование map
могут и побить. Если уж и хочется из цикла что-то менять снаружи (что почти всегда плохая идея), то для этого используют forEach
. Map
возвращает значение, которое должно быть использовано. И map
не должен менять ничего извне. Иначе код становится сложноподдерживаемым.