Rails:如果特定键具有相同的值,如何合并两个哈希?

贾斯吉特·辛格

如果特定键具有相同的值,我正在尝试合并哈希。

这是数组

[{

  id: 77,
  member_phone: "9876543210",
  created_at: "2017-05-03T11:06:03.000Z",
  name: "Sure"
},
{
  id: 77,
  member_phone: "123456789",
  created_at: "2017-05-03T11:06:03.000Z",
  name: "Sure"
},
{
  id: 78,
  member_phone: "12345",
  created_at: "2017-05-03T11:06:03.000Z",
  name: "XYZ"
}]

和所需的输出:

[{
  id: 77,
  member_phone: "123456789,9876543210",
  created_at: "2017-05-03T11:06:03.000Z",
  name: "Sure"
},
{
  id: 78,
  member_phone: "12345",
  created_at: "2017-05-03T11:06:03.000Z",
  name: "XYZ"
}]

这是我试过的代码:

merge_users.group_by { |h1| h1["id"] }.map do |k,v|
  { "id" => k, :member_phone =>  v.map { |h2| h2[:member_phone] }.join(", ") }
end

我该怎么做?

拉贾戈帕兰

以下代码适用于您给定的示例。

代码

result = arr.group_by {|h| h[:id]}.values.map do |arr|
  arr.reduce do |h1, h2|
    h1.merge(h2) do |k, ov, nv|
      ov.eql?(nv) ? ov : [ov, nv].join(",")
    end
  end
end

结果

#=>[{:id=>77, :member_phone=>"9876543210,123456789", :created_at=>"2017-05-03T11:06:03.000Z", :name=>"Sure"}, {:id=>78, :member_phone=>"12345", :created_at=>"2017-05-03T11:06:03.000Z", :name=>"XYZ"}]

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

rails / ruby将具有相同密钥,不同值的两个哈希合并

来自分类Dev

如何合并具有不同哈希值的两个相同提交?

来自分类Dev

如何合并两个具有相同值的对象?

来自分类Dev

比较两个哈希图是否具有相等的值和相同的键集?

来自分类Dev

如何在Ruby中合并具有相同密钥的两个哈希

来自分类Dev

如何匹配和合并具有相同键的两个对象数组

来自分类Dev

如何合并两个具有相同键名的字典

来自分类Dev

如何合并具有重复键总和值的两个对象

来自分类Dev

如何将两个列表中具有相同键的字典值相加?

来自分类Dev

SQL合并两个表,其中两个列具有相同的值

来自分类Dev

在Java中合并具有相同键的两个映射,并将值加在一起

来自分类Dev

如果数组中指定键的值相同,如何合并哈希

来自分类Dev

如果两个相同的对象具有不同的哈希码,会有什么缺点

来自分类Dev

如果在javascript中具有相同ID,如何合并数组中所有属性的两个对象?

来自分类Dev

如何获得具有不同键但在php中具有相同值的两个多维数组的差异?

来自分类Dev

合并两个对象数组,但在特定键/值上具有唯一性

来自分类Dev

这两个指针如何具有相同的值?

来自分类Dev

python中具有相同值的两个键到一个键

来自分类Dev

PHP合并具有相同键的两个数组并输出为特定的json格式

来自分类Dev

如果JavaScript中的键相同,如何比较两个不同的Object键并更新其值?

来自分类Dev

如果两个多维对象在javascript中具有相同的键值,则将它们合并

来自分类Dev

如果具有相同的列标志,则合并两个单元格的结果

来自分类Dev

合并两个键不同但值相同的无序对象?

来自分类Dev

如何合并两个表并在SQL中使用具有相同ID的值求和?

来自分类Dev

如何合并具有相同元素的两个字典(键:val)

来自分类Dev

如何从两个单独的数组中创建具有两个键/值对的对象

来自分类Dev

如果两个字典具有相同的键值对,如何将它们合并?

来自分类Dev

如果两个控制器具有相同的RequestMapping路径值,如何指定控制器名称?

来自分类Dev

PHP排序数组,每组两个,避免合并具有相同值的项目

Related 相关文章

  1. 1

    rails / ruby将具有相同密钥,不同值的两个哈希合并

  2. 2

    如何合并具有不同哈希值的两个相同提交?

  3. 3

    如何合并两个具有相同值的对象?

  4. 4

    比较两个哈希图是否具有相等的值和相同的键集?

  5. 5

    如何在Ruby中合并具有相同密钥的两个哈希

  6. 6

    如何匹配和合并具有相同键的两个对象数组

  7. 7

    如何合并两个具有相同键名的字典

  8. 8

    如何合并具有重复键总和值的两个对象

  9. 9

    如何将两个列表中具有相同键的字典值相加?

  10. 10

    SQL合并两个表,其中两个列具有相同的值

  11. 11

    在Java中合并具有相同键的两个映射,并将值加在一起

  12. 12

    如果数组中指定键的值相同,如何合并哈希

  13. 13

    如果两个相同的对象具有不同的哈希码,会有什么缺点

  14. 14

    如果在javascript中具有相同ID,如何合并数组中所有属性的两个对象?

  15. 15

    如何获得具有不同键但在php中具有相同值的两个多维数组的差异?

  16. 16

    合并两个对象数组,但在特定键/值上具有唯一性

  17. 17

    这两个指针如何具有相同的值?

  18. 18

    python中具有相同值的两个键到一个键

  19. 19

    PHP合并具有相同键的两个数组并输出为特定的json格式

  20. 20

    如果JavaScript中的键相同,如何比较两个不同的Object键并更新其值?

  21. 21

    如果两个多维对象在javascript中具有相同的键值,则将它们合并

  22. 22

    如果具有相同的列标志,则合并两个单元格的结果

  23. 23

    合并两个键不同但值相同的无序对象?

  24. 24

    如何合并两个表并在SQL中使用具有相同ID的值求和?

  25. 25

    如何合并具有相同元素的两个字典(键:val)

  26. 26

    如何从两个单独的数组中创建具有两个键/值对的对象

  27. 27

    如果两个字典具有相同的键值对,如何将它们合并?

  28. 28

    如果两个控制器具有相同的RequestMapping路径值,如何指定控制器名称?

  29. 29

    PHP排序数组,每组两个,避免合并具有相同值的项目

热门标签

归档