在第一个元素的基础上对数组进行分组,而不在Ruby中重复

在第一个元素的基础上对数组进行分组,而不在Ruby中重复,第1张

概述我正在执行一个活动的记录命令Product.pluck(:category_id,:price),它返回一个包含2个元素数组的数组: [ [1, 500], [1, 100], [2, 300]] 我想在第一个元素的基础上进行分组,创建一个看起来像这样的哈希: {1 => [500, 100], 2 => [300]} group_by似乎是合乎逻辑的,但复制了整个数组.即a.gro 我正在执行一个活动的记录命令Product.pluck(:@R_301_4602@_ID,:price),它返回一个包含2个元素数组的数组:

[  [1,500],[1,100],[2,300]]

我想在第一个元素的基础上进行分组,创建一个看起来像这样的哈希:

{1 => [500,2 => [300]}

group_by似乎是合乎逻辑的,但复制了整个数组.即a.group_by(&:first)产生:

{1=>[[1,100]],2=>[[2,300]]}
解决方法 您可以对它进行二次转换:

Hash[  array.group_by(&:first).collect do |key,values|    [ key,values.collect { |v| v[1] } ]  end]

或者直接绘制逻辑:

array.each_with_object({ }) do |item,result|  (result[item[0]] ||= [ ]) << item[1]end
总结

以上是内存溢出为你收集整理的在第一个元素的基础上对数组进行分组,而不在Ruby中重复全部内容,希望文章能够帮你解决在第一个元素的基础上对数组进行分组,而不在Ruby中重复所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1260097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存