【问题标题】:Get every n-elements of array获取数组的每个 n 元素
【发布时间】:2011-07-08 06:13:07
【问题描述】:

如何使用 Ruby 1.9+ 选择数组的每个 n 元素(例如六个)?示例:

a = [0, 1, 2, 3, 4, ... , 33]
# solution
# => [[0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11], ... ]

【问题讨论】:

    标签: arrays ruby iteration enumeration


    【解决方案1】:

    Enumerable#each_slice

    为每个给定块迭代 元素切片。如果没有块 给定,返回一个枚举数。

    例如:

    (1..10).each_slice(3) {|a| p a}
    # outputs below
    [1, 2, 3]
    [4, 5, 6]
    [7, 8, 9]
    [10]
    

    用作:

    irb(main):002:0> a =  Array(1..33)
    => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33]
    irb(main):003:0> a.each_slice(5) # no good
    => #<Enumerable::Enumerator:0x47ae6e8>
    irb(main):004:0> a.each_slice(5).to_a # good
    => [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25], [26, 27, 28, 29, 30], [31, 32, 33]]
    

    【讨论】:

    • 不错!我正在寻找这个!
    猜你喜欢
    • 2021-10-05
    • 2020-07-21
    • 2021-10-04
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多