【问题标题】:Count dublicates in array of objects [duplicate]计算对象数组中的重复项[重复]
【发布时间】:2021-07-06 10:20:57
【问题描述】:

我有一个数组。如何按类型、名称和大小以及增量查找重复项。 并在增加数量后删除相同的。

[
    {
        "name": "Pizza with pepper",
        "imageUrl": "...",
        "type": 0,
        "size": 26,
        "price": "803",
        "amount": 1
    },
    {
        "name": "Pizza with pepper",
        "imageUrl": "...",
        "type": 1,
        "size": 40,
        "price": "803",
        "amount": 1
    },
    {
        "name": "Peperoni",
        "imageUrl": "...",
        "type": 0,
        "size": 30,
        "price": "803",
        "amount": 1
    },
    {
        "name": "Peperoni",
        "imageUrl": "...",
        "type": 0,
        "size": 30,
        "price": "803",
        "amount": 1
    }
]

【问题讨论】:

    标签: javascript arrays json


    【解决方案1】:

    const data = [
        {
            "name": "Pizza with pepper",
            "imageUrl": "...",
            "type": 0,
            "size": 26,
            "price": "803",
            "amount": 1
        },
        {
            "name": "Pizza with pepper",
            "imageUrl": "...",
            "type": 1,
            "size": 40,
            "price": "803",
            "amount": 1
        },
        {
            "name": "Peperoni",
            "imageUrl": "...",
            "type": 0,
            "size": 30,
            "price": "803",
            "amount": 1
        },
        {
            "name": "Peperoni",
            "imageUrl": "...",
            "type": 0,
            "size": 30,
            "price": "803",
            "amount": 1
        }
    ];
    
    const merged = data.reduce((agg, item) => {
      const key = `${item.name}-${item.type}-${item.size}`;
      if (agg[key]) {
         agg[key].amount += item.amount;
      } else {
         agg[key] = item;
      }
      return agg;
    }, {});
    
    const result = Object.values(merged);
    console.log(result);

    【讨论】:

      猜你喜欢
      • 2012-05-19
      • 2018-09-15
      • 1970-01-01
      • 2014-02-24
      • 2021-01-23
      • 2018-09-22
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多