从稍微嵌套的数组中删除重复项后,保留对象的所有键

加布里埃尔·莫雷诺(Gabriel Moreno)

对此问题有同样的疑问,但是我的对象有更多的键,例如:

[{
  id: 1
  name: "abcd",
  value: 123,
  type: "foo"
},
{
  id: 1
  name: "abcd",
  value: 321,
  type: "faa"
},
{
  id: 2
  name: "dcba",
  value: 456,
  type: "baa"
}]

我想实现以下目标:

[{
  id: 1,
  name: "abcd",
  value: [123, 321],
  type: ["foo", "faa"]
},
{
  id: 2
  name: "dcba",
  value: [456],
  type: ["baa"]
}]

额外的键具有相同的值。

或Drori

我们的想法是组由id,则图中的每个对象组,挑idname从第一对象,提取所有valuetype从在该组,转置的所有对象,并压缩至另一对象,并且将它们合并。

const { pipe, groupBy, prop, values, map, converge, merge, head, pick, props, transpose, zipObj } = R

const fn = pipe(
  groupBy(prop('id')), // groupBy the id
  values, // convert the object of groups to array of groups
  map(converge(merge, [ // map each group by merging the results of...
    pipe(head, pick(['id', 'name'])), // getting the id and name from the 1st item
    pipe(map(props(['value', 'type'])), transpose, zipObj(['value', 'type'])) // extract the value and type and zipping to an object
  ]))
)

const data = [{
  id: 1,
  name: "abcd",
  value: 123,
  type: "foo"
},
{
  id: 1,
  name: "abcd",
  value: 321,
  type: "faa"
},
{
  id: 2,
  name: "dcba",
  value: 456,
  type: "baa"
}]

const result = fn(data)

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js"></script>

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

基于键从 JavaScript 对象数组中删除重复项

来自分类Dev

从对象数组中,收集并删除 JavaScript 中所有属性的重复项

来自分类Dev

将对象保留在具有最高值的数组中,但删除所有具有重复值的对象

来自分类Dev

从数组php中删除所有非重复项

来自分类Dev

PHP - 删除数组中的所有重复项

来自分类Dev

通过深层嵌套键映射重复项后,获取整个对象数组

来自分类Dev

如何从对象数组中删除所有重复对象?

来自分类Dev

JS对象数组-删除重复项并合并嵌套对象

来自分类Dev

删除对象数组Javascript中的重复项

来自分类Dev

从对象数组中删除重复项

来自分类Dev

javascript从对象数组中删除重复项

来自分类Dev

Javascript从对象数组中删除重复项

来自分类Dev

从对象数组中删除重复项

来自分类Dev

从对象的多维数组中删除重复项

来自分类Dev

删除多维数组中的重复项并保留原始数组键值

来自分类Dev

删除多维数组中的重复项,并保留原始数组的键值

来自分类Dev

删除/取消设置多维数组中的所有其他键但保留键

来自分类Dev

使用列表作为键从嵌套列表中删除重复项

来自分类Dev

从数组中删除重复项,保留一些值

来自分类Dev

从数组中删除重复项,保留一些值

来自分类Dev

我想删除数组中的所有重复项,然后将结果写入空数组

来自分类Dev

如何删除所有重复项,只保留该行的 4 个重复项?

来自分类Dev

在PHP中,如何删除对象数组中的重复项,其中重复项定义为具有相同值的键值对的子集

来自分类Dev

在Mongodb中基于键和引用的对象删除重复项?

来自分类Dev

php从嵌套的多维数组中删除重复项

来自分类Dev

如何从JSON对象数组中删除具有特定键/值对的所有JSON对象?

来自分类Dev

删除字符串数组中的所有连续重复项

来自分类Dev

从JSON数组中的嵌套对象中获取所有键及其值(不带jQuery)

来自分类Dev

从对象中删除重复项,如果存在重复项,则获取键的总和

Related 相关文章

  1. 1

    基于键从 JavaScript 对象数组中删除重复项

  2. 2

    从对象数组中,收集并删除 JavaScript 中所有属性的重复项

  3. 3

    将对象保留在具有最高值的数组中,但删除所有具有重复值的对象

  4. 4

    从数组php中删除所有非重复项

  5. 5

    PHP - 删除数组中的所有重复项

  6. 6

    通过深层嵌套键映射重复项后,获取整个对象数组

  7. 7

    如何从对象数组中删除所有重复对象?

  8. 8

    JS对象数组-删除重复项并合并嵌套对象

  9. 9

    删除对象数组Javascript中的重复项

  10. 10

    从对象数组中删除重复项

  11. 11

    javascript从对象数组中删除重复项

  12. 12

    Javascript从对象数组中删除重复项

  13. 13

    从对象数组中删除重复项

  14. 14

    从对象的多维数组中删除重复项

  15. 15

    删除多维数组中的重复项并保留原始数组键值

  16. 16

    删除多维数组中的重复项,并保留原始数组的键值

  17. 17

    删除/取消设置多维数组中的所有其他键但保留键

  18. 18

    使用列表作为键从嵌套列表中删除重复项

  19. 19

    从数组中删除重复项,保留一些值

  20. 20

    从数组中删除重复项,保留一些值

  21. 21

    我想删除数组中的所有重复项,然后将结果写入空数组

  22. 22

    如何删除所有重复项,只保留该行的 4 个重复项?

  23. 23

    在PHP中,如何删除对象数组中的重复项,其中重复项定义为具有相同值的键值对的子集

  24. 24

    在Mongodb中基于键和引用的对象删除重复项?

  25. 25

    php从嵌套的多维数组中删除重复项

  26. 26

    如何从JSON对象数组中删除具有特定键/值对的所有JSON对象?

  27. 27

    删除字符串数组中的所有连续重复项

  28. 28

    从JSON数组中的嵌套对象中获取所有键及其值(不带jQuery)

  29. 29

    从对象中删除重复项,如果存在重复项,则获取键的总和

热门标签

归档