JS - 加入具有重复项的数组中的唯一列

莱昂纳多·塔努埃

由于与另一个数据集的连接,我有一组具有重复唯一 ID 的对象。这是由于 API 返回数据的限制。我想要做的是在 JavaScript 中找到重复的行并加入唯一的数据列。例如,这就是我所拥有的:

var data = [
  {id: 1, name: 'Joe', type:'Red'},
  {id: 2, name: 'Smith', type:'Red'},
  {id: 2, name: 'Smith', type:'Green'},
  {id: 3, name: 'Ana', type:'Blue'},
];

这是我需要的结果:

var data = [
  {id: 1, name: 'Joe', type:'Red'},
  {id: 2, name: 'Smith', type:'Red, Green'},
  {id: 3, name: 'Ana', type:'Blue'},
];

我想我可以创建一个嵌套的 for 循环,但我相信性能方面它不会很理想。我尝试使用 Array.prototype.filter 但无法在这里实现我所需要的。

我建议您使用一组类型,它更干净且可重用。

这种方法使用对Array.prototype.reduce对象进行分组id的函数Object.values和提取分组对象的函数

var data = [  {id: 1, name: 'Joe', type:'Red'},  {id: 2, name: 'Smith', type:'Red'},  {id: 2, name: 'Smith', type:'Green'},  {id: 3, name: 'Ana', type:'Blue'}],
    result = Object.values(data.reduce((a, c) => {
      (a[c.id] || (a[c.id] = Object.assign({}, c, {type: []}))).type.push(c.type);

      return a;
}, Object.create(null)));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除一列动态数据中具有重复项的行的重复项

来自分类Dev

在Vue.js中渲染具有重复值的数组

来自分类Dev

从JS数组中删除重复项

来自分类Dev

从多维数组(JS)中删除重复项

来自分类Dev

从JS数组中删除重复项

来自分类Dev

检查值是否具有重复项,而另一列在php的多维数组中是否不同?

来自分类Dev

根据另一列中的唯一值查找一列中的重复项

来自分类Dev

避免在具有非唯一列的mySQL表中重复条目

来自分类Dev

Underscore.js在对象数组中查找唯一值;返回唯一项及其数量

来自分类Dev

提取一列中具有重复项的行,满足另一列中的给定条件

来自分类Dev

underscore.js-从嵌入对象列表中的对象创建唯一项数组

来自分类Dev

Angular.js:数组中的重复和唯一过滤器

来自分类Dev

通过ID比较Javascript对象以在Angular / JS中创建唯一列表

来自分类Dev

警告:数组或迭代器中的每个子代都应具有唯一的“键”道具。检查“ SocialMenu”的渲染方法。(Meteor.js应用中的React.js)

来自分类Dev

如何通过Vanilla Js中的replace()更改具有动态数据的重复项

来自分类Dev

通过具有重复项的 gz 文件中的多个列数据计算唯一性

来自分类Dev

如何在 PySpark 中通过具有唯一值的列值标记连续重复项?

来自分类Dev

使用lodash.js删除对象数组中的重复项

来自分类Dev

使用lodash.js删除对象数组中的重复项

来自分类Dev

JS如果有两个以上重复项,则在数组中查找重复值的索引

来自分类Dev

将重复的字典项转换为具有 ID 数组的唯一项

来自分类Dev

加入或分组表以仅删除一列中的重复项

来自分类Dev

如何使用带有猫鼬的节点js创建json元素的唯一列表

来自分类Dev

通过另一列中的唯一值删除重复项

来自分类Dev

在另一列中识别具有不同值的一个值的重复项

来自分类Dev

Rails渲染具有唯一ID的格式js

来自分类Dev

Rails渲染具有唯一ID的格式js

来自分类Dev

如何过滤除angualr.js中的一列以外的数组

来自分类Dev

如何删除具有一个唯一列的重复记录

Related 相关文章

  1. 1

    删除一列动态数据中具有重复项的行的重复项

  2. 2

    在Vue.js中渲染具有重复值的数组

  3. 3

    从JS数组中删除重复项

  4. 4

    从多维数组(JS)中删除重复项

  5. 5

    从JS数组中删除重复项

  6. 6

    检查值是否具有重复项,而另一列在php的多维数组中是否不同?

  7. 7

    根据另一列中的唯一值查找一列中的重复项

  8. 8

    避免在具有非唯一列的mySQL表中重复条目

  9. 9

    Underscore.js在对象数组中查找唯一值;返回唯一项及其数量

  10. 10

    提取一列中具有重复项的行,满足另一列中的给定条件

  11. 11

    underscore.js-从嵌入对象列表中的对象创建唯一项数组

  12. 12

    Angular.js:数组中的重复和唯一过滤器

  13. 13

    通过ID比较Javascript对象以在Angular / JS中创建唯一列表

  14. 14

    警告:数组或迭代器中的每个子代都应具有唯一的“键”道具。检查“ SocialMenu”的渲染方法。(Meteor.js应用中的React.js)

  15. 15

    如何通过Vanilla Js中的replace()更改具有动态数据的重复项

  16. 16

    通过具有重复项的 gz 文件中的多个列数据计算唯一性

  17. 17

    如何在 PySpark 中通过具有唯一值的列值标记连续重复项?

  18. 18

    使用lodash.js删除对象数组中的重复项

  19. 19

    使用lodash.js删除对象数组中的重复项

  20. 20

    JS如果有两个以上重复项,则在数组中查找重复值的索引

  21. 21

    将重复的字典项转换为具有 ID 数组的唯一项

  22. 22

    加入或分组表以仅删除一列中的重复项

  23. 23

    如何使用带有猫鼬的节点js创建json元素的唯一列表

  24. 24

    通过另一列中的唯一值删除重复项

  25. 25

    在另一列中识别具有不同值的一个值的重复项

  26. 26

    Rails渲染具有唯一ID的格式js

  27. 27

    Rails渲染具有唯一ID的格式js

  28. 28

    如何过滤除angualr.js中的一列以外的数组

  29. 29

    如何删除具有一个唯一列的重复记录

热门标签

归档