[ [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中重复所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)