Сумма массива объектов в JavaScript

  1. Используйте функцию reduce для суммирования значений массива объектов в JavaScript
  2. Используйте функции map() и reduce() для суммирования значений массива объектов в JavaScript

В массиве могут храниться элементы аналогичного типа, в том числе и объекты.

В этой статье мы узнаем более эффективные и эффективные способы суммирования значений массива объектов в JavaScript.

В наших примерах мы просуммируем Amount для всех объектов в следующем массиве.

fruits = [
    {  description: 'orange', Amount: 50},
    {  description: 'orange', Amount: 50},
    {  description: 'apple', Amount: 75},
    {  description: 'kiwi', Amount: 35},
    {  description: 'watermelon', Amount: 25 },
];

Используйте функцию reduce для суммирования значений массива объектов в JavaScript

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

Этот метод помогает одновременно фильтровать и отображать значение за один проход.

Мы реализуем это в следующем коде.

class fruitCollection extends Array {
    sum(key) {
        return this.reduce((a, b) => a + (b[key] || 0), 0);
    }
}
const fruit = new fruitCollection(...[
    {  description: 'orange', Amount: 50},
    {  description: 'orange', Amount: 50},
    {  description: 'apple', Amount: 75},
    {  description: 'kiwi', Amount: 35},
    {  description: 'watermelon', Amount: 25 },]);

console.log(fruit.sum('Amount'));

Выход:

235

Используйте функции map() и reduce() для суммирования значений массива объектов в JavaScript

Функция map() строит новый массив, изменяя значение каждого элемента в массиве соответственно. Затем функция фильтра используется для удаления значений, не попадающих в эту категорию. Наконец, функция reduce() принимает все значения и возвращает одно значение, которое является необходимой суммой.

Например,

fruits = [
 {  description: 'orange', Amount: 50},
 {  description: 'orange', Amount: 50},
 {  description: 'apple', Amount: 75},
 {  description: 'kiwi', Amount: 35},
 {  description: 'watermelon', Amount: 25},];
const sumall = fruits.map(item => item.amount).reduce((prev, curr) => prev + curr, 0);
console.log(sumall);

Выход:

235

Сопутствующая статья - JavaScript Object

  • Добавить значения к объекту в JavaScript
  • Добавить свойства к объекту JavaScript
  • Объединить объекты в Javasript