gpt4 book ai didi

ruby-on-rails - 将类似的数组值合并到新的分组数组?

转载 作者:行者123 更新时间:2023-11-29 13:30:17 24 4
gpt4 key购买 nike

我需要按如下方式组合类似的数组值:

来自:

arr = ['abc', 'abc', 'eff', 'eff', 'foo', 'bar', 'bar', 'bar']

收件人:

merged_like_arr = [ ['abc', 'abc'], ['eff', 'eff'], ['foo'], ['bar', 'bar', 'bar']]

基本上有一个 ActiveRecord 对象,它按顺序返回记录集合。

aff=Registration.order('affiliate DESC')
aff.map{|code| code. affiliate }
# produces the following:
# arr = ['abc', 'abc', 'eff', 'eff', 'foo', 'bar', 'bar', 'bar']

我需要将数据形式 arr 更改为 merged_like_arr(如上所示),以便我可以执行以下操作:

merged_like_arr.sort_by{|arr|-arr.size}.first(10)
#=> [ ["bar", "bar", "bar"], ["eff", "eff"], ["abc", "abc"] ... ]

目的是通过查找他们的成员(member) ID 在注册表中使用的次数,找到系统中排名前 10 位的成员(member)。

也欢迎其他实现。谢谢!

最佳答案

The purpose is to find the top 10 affiliates in the system by looking up how many times their affiliate id was used in the registration table.

您可以使用 count使用 group 进行此类查询:

If count is used with group, it returns a Hash whose keys represent the aggregated column, and the values are the respective amounts:

Person.group(:city).count
# => { 'Rome' => 5, 'Paris' => 3 }

在你的情况下:

Registration.group(:affiliate).count
#=> { 'abc' => 2, 'eff' => 2, 'foo' => 1, 'bar' => 3 }

关于ruby-on-rails - 将类似的数组值合并到新的分组数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25416837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com