首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助将一个列表分成两个不同的列表

需要帮助将一个列表分成两个不同的列表
EN

Stack Overflow用户
提问于 2018-03-26 23:38:12
回答 1查看 36关注 0票数 0

这是我的代码,它创建了一个包含20个项目的列表,我想将它分成2个10项列表,一次只显示一个列表。我怎么才能在红宝石上做到这一点?

代码语言:javascript
复制
def list_dogs
counter = 0
if counter <= 10
  Dogs::DogsPopularity.all.each do |dog|

    puts "#{counter +=1}. #{dog.name}"
    #binding.pry
  end

elsif counter > 10 && counter <= 20
  Dogs::DogsPopularity.all.each do |dog|
    puts "#{counter +=1}. #{dog.name}"
  #  binding.pry
  end
end
#binding.pry
end

这就是它打印出来的..。

  1. 拉布拉多猎犬
  2. 金毛猎犬
  3. 斗牛犬
  4. 比格
  5. 法国斗牛犬
  6. 贵宾犬
  7. 约克郡梗
  8. 拳击手
  9. 达克斯
  10. 澳大利亚牧羊犬
  11. 彭布罗克威尔士科吉
  12. 骑士国王查尔斯·斯帕尼尔
  13. 施子
  14. 波士顿梗
  15. 哈瓦尼斯
  16. 布列塔尼
  17. 美国可卡猎鹬犬
  18. 奇瓦瓦
  19. 帕格
  20. 马耳他语
EN

回答 1

Stack Overflow用户

发布于 2018-03-26 23:51:26

我们必须假设您的类/模块返回20条狗,如果是这样的话:

代码语言:javascript
复制
def list_dogs
  Dogs::DogsPopularity.all.each_slice(10).each do |dog_arr|
    dog_arr.each_with_index do |dog, i|
      puts "#{i+1}. #{dog.name}"
    end
  end
end

要确保这在基本数组上有效,请参见:

代码语言:javascript
复制
[*1..100].each_slice(10).each_with_index{|arr, i| puts "#{i+1}: #{arr}"}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49502261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档