【问题标题】:Combine duplicate items in an array based on property [duplicate]根据属性组合数组中的重复项[重复]
【发布时间】:2021-10-04 05:43:57
【问题描述】:

我想创建另一个数组,在其中添加重复的广告系列值

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 }
]

【问题讨论】:

  • 你尝试了什么?还是您希望我们为您编写代码?

标签: javascript arrays


【解决方案1】:

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

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; }

【讨论】:

猜你喜欢
  • 2021-07-16
  • 2012-05-17
  • 2020-06-29
  • 1970-01-01
  • 2016-05-15
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 1970-01-01
相关资源
最近更新 更多