ruby - 如何有效地加入从 json 列表收到的 ruby​​ 散列

标签 ruby arrays algorithm sorting hash

我正在尝试制作包含表格的页面,表格的内容是来自两个数组的数据。 我有两个带有哈希的列表(数组):

<pre><code>arr1 = [ { "device"=>100, "phone"=>"12345" }, ..., { "device"=>102, "phone"=>"12346" } ] arr2 = [ { "device"=>100, "type"=>"mobile", "name"=>"nokia" }, ..., { "device"=>102, "type"=>"VIOP", "name"=>"smth" } ] </code></pre> <p><code></code></p><code> <p>How can I join hashes from arr1 and arr2 by "device" to get a result array:</p> <p></p> </code><pre><code>result = [ { "device"=>100, "phone"=>"12345", "type"=>"mobile", "name"=>"nokia" }, ..., { "device"=>102, "phone"=>"12346", "type"=>"VIOP", "name"=>"smth" } ] </code></pre>

包含带有结果数组的表格的页面加载速度非常慢,我需要找到生成 result_array 的最快方法。

请帮帮我

最佳答案

这会起作用:

(arr1 + arr2).group_by { |i| i["device"] }.map { |d,(i1,i2)| i1.merge(i2)}
#=> [{"device"=>100, "phone"=>"12345", "type"=>"mobile", "name"=>"nokia"}, {"device"=>102, "phone"=>"12346", "type"=>"VIOP", "name"=>"smth"}]

关于ruby - 如何有效地加入从 json 列表收到的 ruby​​ 散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18340655/

相关文章:

javascript - 如何在JavaScript中使用字节数组将字符串转换为base64编码?

arrays - PyOpenGL 设置 GLfloat 类型数组的正确语法

swift - 使用 Swift 4 对 NON-PRIME 数字进行三角求和

algorithm - 二进制数的倒数

algorithm - 递归步数计算方法示例

ruby - 在 Ruby 中向 gstreamer 视频添加叠加文本

ruby - 更好地使用 EM.next_tick 或 EM.defer 来使用 Eventmachine 进行长时间运行的计算?

arrays - JSON 模式可以描述数组数组必须具有相同长度元素的约束吗?

ruby-on-rails - 更改资源路径

ruby-on-rails - WIN x64 上的 ruby​​-debug-base19-0.11.26.gem