当前位置: 首页 > 知识库问答 >
问题:

计数对象数组中的重复项[重复]

马飞
2023-03-14

我有一个数组。如何按类型、名称和大小以及递增量找到双重许可。增加数量后删除相同的。

[
    {
        "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
    }
]

共有1个答案

李景天
2023-03-14
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);
 类似资料:
  • 我希望循环通过一个对象,并对数据进行一些更改。我不是100%如果我实际上处理一个对象或一个数组包含多个对象,所以任何帮助都很感激。 下面是我的目标: 提前致谢

  • 假设对象数组如下所示: 如果标签和颜色相同,则会出现重复条目。在这种情况下,id=1和id=5的对象是重复的。 根据注释中的请求,这里是期望的结果:

  • 如何在两个属性之后对对象数组进行分组?在以下情况下是否可以使用减少? 例如:按国家和城市将以下数组分组,并对“年龄”属性求和: /*预期结果:*/

  • 问题内容: 我有一个包含我的对象的数组。每个人都有财产。 有没有比我的数组中找到重复的帖子ID的更有效方法? 问题答案: 我将建议2解决方案。 两种方法都必须是平等的 使帖子符合可哈希和平等 在这里,我假设您的struct(或类)具有type 的属性。 解决方案1(丢失原始订单) 要删除重复的内容,您可以使用 解决方案2(保留订单)

  • 问题内容: 我有一个包含对象数组的对象。 我想知道什么是从数组中删除重复对象的最佳方法。举例来说,事物……东西将变成…… 问题答案: 一种原始方法是:

  • 我需要求一个对象数组中类似“value”的值之和。 样本输入 预期产量 我试过跟随,但没有达到预期效果