gpt4 book ai didi

arrays - 从序列创建子数组

转载 作者:数据小太阳 更新时间:2023-10-29 07:46:08 24 4
gpt4 key购买 nike

我的数组看起来像

[nil, nil, nil, nil, 5, 6, 7, 8, 9, 10, 11, nil, nil, nil, nil, nil, 17, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 50, 51]

我想“展开”它,所以它看起来像

[[5,6,7,8,9,10,11],[17], [50,51]]

实现该目标的最简单方法是什么?

最佳答案

arr.slice_before(&:nil?).map(&:compact).reject(&:empty?)

出于好奇,O(N):

arr.inject([[]]) do |memo, e| 
e ? memo.last << e : (memo << [] unless memo.last.empty?)
memo
end

或者,用现代 ruby 的优点:

arr.each_with_object([[]]) do |e, memo| 
e && memo.last << e || (memo << [] unless memo.last.empty?)
end

而且,完全出于好奇(这是个玩笑,请不要使用):

JSON.parse arr.to_json
.gsub(/\D{2,}/, '],[')
.gsub(/\A\D+/, '[[')
.gsub(/\D+\z/, ']]')

关于arrays - 从序列创建子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31924121/

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