Как посчитать сумму элементов массива
Короткий ответ
Метод reduce() складывает элементы, начиная с нуля:
console.log([10, 20, 30].reduce((sum, n) => sum + n, 0));Результат:
60Среднее значение
Разделите сумму на длину массива. Проверка нужна, чтобы не делить на ноль:
const marks = [4, 5, 3];
const sum = marks.reduce((total, n) => total + n, 0);
console.log(marks.length > 0 ? sum / marks.length : 0);Результат:
4Сумма по полю
В функции обращайтесь к нужному свойству объекта:
const orders = [{ total: 100 }, { total: 250 }];
console.log(orders.reduce((sum, order) => sum + order.total, 0));Результат:
350Цикл
То же самое обычным циклом for...of:
let sum = 0;
for (const n of [10, 20, 30]) sum += n;
console.log(sum);Результат:
60Частая ошибка
Числа из форм и файлов часто приходят строками. Без преобразования + склеивает строки:
const values = ['10', '20', '30'];
console.log(values.reduce((sum, n) => sum + n, 0));
console.log(values.reduce((sum, n) => sum + Number(n), 0));Результат:
0102030
60Функции из этого ответа
- Array.prototype.reduce — Сводит массив к одному значению.