加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数组 – 以n,m,o组或更多组分组的数组

发布时间:2020-12-17 03:07:51 所属栏目:百科 来源:网络整理
导读:有没有像这样拆分数组的方法? [1,2,3,4,5,6,7,8,9].split(3,2)#= [[1,3],[4,7],[8,9]] 解决方法 不,没有,但你可以轻松自己写一个. class Array def in_groups_of_n(*sizes) sizes.map(method(:shift)) endend 例: arr = [1,9]arr.in_groups_of_n(3,2)# = [
有没有像这样拆分数组的方法?

[1,2,3,4,5,6,7,8,9].split(3,2)
#=> [[1,3],[4,7],[8,9]]

解决方法

不,没有,但你可以轻松自己写一个.

class Array
  def in_groups_of_n(*sizes)
   sizes.map(&method(:shift))
  end
end

例:

arr = [1,9]
arr.in_groups_of_n(3,2)
# => [[1,9]]

Demonstration

如果您需要非破坏性版本,可以使用dup方法:

class Array
  def in_groups_of_n(*sizes)
   duplicate = dup
   sizes.map { |size| duplicate.shift(size) }
  end
end

arr = [1,9]
arr
# => [1,9]

Demonstration

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读