【问题标题】:Building array of data in Ruby在 Ruby 中构建数据数组
【发布时间】:2014-04-10 20:45:10
【问题描述】:

我在名为@results 的实例变量中找到了搜索结果。每个项目都是一个专辑。我已经遍历了结果集并将所有专辑父集合 id 添加到名为 @collections 的 var 中。这样做如下:

 @results.each do |album|
  @collections << album.collection_id
end

@collections = @collections.uniq

我现在需要重新遍历 @results 并为属于每个集合的每个专辑 ID 创建一个子数组。

然后我将能够使用它在我的视图中构建漂亮的输出。

对于如何为每个集合 ID 构建专辑 ID 的子数组,我感到很困惑。

有什么帮助吗?

【问题讨论】:

    标签: ruby arrays iteration


    【解决方案1】:

    我现在需要重新遍历 @results 并为属于每个集合的每个专辑 ID 创建一个子数组。

    你需要使用group_by方法:

    child_array_by_id = @results.group_by { |album| album.collection_id }
    @collections = child_array_by_id.keys
    # now iterate
    child_array_by_id.each do |id_key, val|
       # your code
    end
    

    现在您也不需要以下内容来获取@collection 数组。因为child_array_by_id.keys 给了你同样的东西。

    @results.each do |album|
      @collections << album.collection_id
    end
    
    @collections = @collections.uniq
    

    【讨论】:

    • 太棒了。仍在尝试了解它的工作原理,但谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 2020-07-16
    • 2019-01-26
    • 2020-10-08
    相关资源
    最近更新 更多