Как сложить все элементы массива js
Можно использовать обычный цикл, но есть более красивое решение. Метод reduce() , принимает в качестве аргумента массив и колбек функцию, которая применяется к каждому элементу массива и таким образом позволяет найти их сумму. Вот пример:
const numbers = [1, 2, 3, 4]; const sumOfNumbers = numbers.reduce((acc, number) => acc + number, 0); console.log(sumOfNumbers); // => 10
27 октября 2022
Немного улучшу reduce .
acc + number);
А за такое использование map могут и побить. Если уж и хочется из цикла что-то менять снаружи (что почти всегда плохая идея), то для этого используют forEach . Map возвращает значение, которое должно быть использовано. И map не должен менять ничего извне. Иначе код становится сложноподдерживаемым.
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
Как сложить числа в массиве объектов после итерации
@Anynomius , да уже делал через reduce, но вот была проблема в том что если в arr хранится не два объекта с ключом price а больше то складывались все price, а мне нужно к примеру сложить только два объекта
12 июн 2021 в 16:40
два каких? отобраных по какому-то критерию?
12 июн 2021 в 16:41
@entithat то есть если бы у меня к примеру был бы массив [
12 июн 2021 в 16:43
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
массив.shift() удаляет первый элемент массива и возвращает его же. Вот и взять его, добавить к следующему элементу:
const arr = [, , ]; if (arr[1]) arr[1].price += arr.shift().price; console.log(arr);
Если нужно так приклеить несколько элементов в определенном месте, используйте arr.splice(индекс, сколькоЭлементовУдалить [, чтоДобавитьНаИхМесто]) -> возвращает новый массив из удаленных элементов.
const arr = [, , , , ]; let new_obj = < price: 0 >; let removed = arr.splice(1, 3, new_obj); new_obj.price = removed.reduce((sum, e) => sum + e.price, 0); console.log(arr);
Как сложить числа в массиве javascript?
или всё-таки перебирать циклом пока значение не будет равно arr[i] == undefined ?
- Вопрос задан более трёх лет назад
- 47202 просмотра
2 комментария
Оценить 2 комментария
Не понятно, что вам нужно, переформулируйте вопрос
stepanger @stepanger Автор вопроса
получить сумму в скобках [«2», «2», «2»] = например 6
Решения вопроса 0
Ответы на вопрос 2
Ответ написан более трёх лет назад
Комментировать
Нравится 5 Комментировать

Александр Логинов-Солоницын @kasheibess
веб уже не тот
Ну или типа как-то так. Чтобы обрабатывать и пустой массив и массив с одним элементом и про приведение типов не забыть:
const s = arraySum([]); console.log(s); function arraySum(arr) < let sum = 0; if (arr.length) < sum = arr.reduce((a, b) =>< return (parseFloat(a) || 0) + (parseFloat(b) || 0); >); > else < sum = 0; >return sum; >
Сумма элементов массива в JavaScript
Часто при работе с JavaScript возникает задача подсчета суммы элементов массива. Например, есть массив чисел [5, 10, 15, 20] и требуется найти сумму его элементов.

Алексей Кодов
Автор статьи
6 июля 2023 в 18:23
Часто при работе с JavaScript возникает задача подсчета суммы элементов массива. Например, есть массив чисел [5, 10, 15, 20] и требуется найти сумму его элементов.
В JavaScript есть несколько способов решения данной задачи.
Использование цикла for
Самый простой и понятный способ — использование обычного цикла for . В нем происходит перебор всех элементов массива и их суммирование.
var numbers = [5, 10, 15, 20]; var sum = 0; for (var i = 0; i < numbers.length; i++) < sum += numbers[i]; >console.log(sum); // 50
Использование метода reduce
Более современный и компактный способ — использование метода reduce . Этот метод применяет функцию к каждому элементу массива (слева направо), чтобы привести его к одному значению.
var numbers = [5, 10, 15, 20]; var sum = numbers.reduce(function(a, b)< return a + b; >, 0); console.log(sum); // 50
Использование метода forEach
Еще один способ — использование метода forEach , который выполняет указанную функцию один раз для каждого элемента в массиве.
var numbers = [5, 10, 15, 20]; var sum = 0; numbers.forEach(function(num) < sum += num; >); console.log(sum); // 50
Все эти способы дают один и тот же результат, поэтому можно выбирать любой, который больше нравится или лучше подходит для конкретной задачи.
