我有一个非常简单的问题,我就是想不出来。
我想合并所有重复的对象并跟踪我有多少重复对象。
这是我的输入:
[
{ w: 'abc', c: 1 },
{ w: 'abc', c: 1 },
{ w: 'abc', c: 1 },
{ w: 'a', c: 1 },
{ w: 'a', c: 1 },
{ w: 'b', c: 1 },
{ w: 'c', c: 1 }
]
这里是我想要的输出,
[
{ w: 'abc', c: 3 },
{ w: 'a', c: 2 },
{ w: 'b', c: 1 },
{ w: 'c', c: 1 }
]
_.union()
用于删除重复项,但我无法跟踪它们。
非常感谢您的帮助。
最佳答案
您可以链接下划线的方法并按 w
对项目进行分组,然后使用所需值的总和映射新对象。
var data = [{ w: 'abc', c: 1 }, { w: 'abc', c: 1 }, { w: 'abc', c: 1 }, { w: 'a', c: 1 }, { w: 'a', c: 1 }, { w: 'b', c: 1 }, { w: 'c', c: 1 }],
result = _
.chain(data)
.groupBy('w')
.map((array, w) => ({ w, c: _.reduce(array, (s, { c }) => s + c, 0) }))
.value();
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
关于javascript - 获取对象中的重复项并合并值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52480871/