javascript - 如果在对象中发现重复名称,如何迭代对象数组以添加计数器值
问题描述
我有 1 个对象数组,并且想要遍历其中的对象。因此,如果发现重复的名称条目,我必须添加计数器值并且应该合并它。对象的最终数组必须具有唯一的条目。
对象A =
[
{name: 'Voice', counter: 1},
{name: 'tele', counter: 1},
{name: 'equip', counter: 1},
{name: 'equip', counter: 2},
{name: 'Voice', counter: 1}
]
结果应该是:-
对象B =
[
{name: 'Voice', counter: 2},
{name: 'tele', counter: 1},
{name: 'equip', counter: 3}
]
解决方案
您可以使用array.reduce
如下一些逻辑。
DEMO
let data = [{name: 'Voice', counter: 1},
{name: 'tele', counter: 1},
{name: 'equip', counter: 1},
{name: 'equip', counter: 2},
{name: 'Voice', counter: 1}]
var result = [];
data.reduce(function (res, value) {
if (!res[value.name]) {
res[value.name] = {
name: value.name,
counter: 0
};
result.push(res[value.name])
}
res[value.name].counter += value.counter
return res;
}, {});
console.log(result)
推荐阅读
- php - window.location.replace 不工作 Laravel ajax
- visual-studio - shutil 错误:“模块‘shutil’没有‘复制’成员”
- node.js - 猫鼬日期比较没有时间和按createdAt和staffId分组,按聚合计算每周、每月和每年的员工总数?
- java - 合并 2 个数组并删除重复输入
- codeigniter - 有没有一种方法可以让我从数据库中减去一个值并输入类型文本编号?
- java - Docker 卷映射 + windows = 难以置信的慢?
- javascript - 10 秒后消失 grails 警报消息
- python - 合并两个深度学习模型 VGG16 和 ResNet50 后出错
- jquery - wordpress:AppMe 主题在 macOS 中不播放背景视频
- c++ - 我可以存储指向转发声明的类/结构的指针吗?