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

基于属性[duplicate]在数组中合并重复项

秦城
2023-03-14

我想创建另一个数组,在其中添加重复的活动值

let arrayName = [
  { campaign: "a", value: 3 },
  { campaign: "b", value: 5 },
  { campaign: "c", value: 7 },
  { campaign: "a", value: 9 },
];

预期产出:

[
  { campaign: 'a', value: 12 },
  { campaign: 'b', value: 5 },
  { campaign: 'c', value: 7 }
]

共有1个答案

阙奇思
2023-03-14

可以减少对象中的项目,然后将条目映射回对象。

js lang-js prettyprint-override">const arrayName = [
  { campaign: "a", value: 3 },
  { campaign: "b", value: 5 },
  { campaign: "c", value: 7 },
  { campaign: "a", value: 9 },
];

const result = Object
  .entries(arrayName.reduce((acc, { campaign, value }) =>
    ({ ...acc, [campaign]: (acc[campaign] || 0) + value }), {}))
  .map(([campaign, value]) => ({ campaign, value }));

console.log(result);
.as-console-wrapper { top: 0; max-height: 100% !important; }
 类似资料:
  • 我正试图从基于某些属性的对象列表中删除重复项。 我们能用一种简单的方法使用Java8吗 我们是否可以根据员工的属性删除其中的重复项。我看到过从String的arraylist中删除重复字符串的帖子。

  • 我有一个数组: 我想将具有相同“ID”的对象组合成数组中的相同对象。它们的共同密钥也应该组合在一起(例如:'名字'、'电子邮件')。有人能建议做这件事的最好方法吗?使用ES6或Lodash

  • 如何根据属性值从数组中删除所有对象? 在上面的代码中,它只删除一个对象。如何删除所有if匹配项?

  • 我有这个对象数组: …我想合并副本,但求和他们的贡献。结果如下: 我如何用JavaScript实现这一点呢?

  • 做任务的时候出了点问题。 我有两个数组,第一个数组显示从20到60随机数。第二个数组显示从40到80数字。 我需要创建第三个数组,它将是两个数组的合并,但没有重复数组。 我的代码如下所示: 我可能知道我可以用类似的方法来解决这个问题 但我不知道如何实施。或者也许有更简单的选择去做,但我坚持,只是试图找到一种方法去做它。可能已经为这个任务准备好了功能? 有什么办法让它更精确吗?

  • 现在我有一个关于它的问题是,我想根据Employee class age属性对ArrayList进行排序。所以请解释一下我该如何排序。