Mor*_*eu5 2 ruby arrays slice chunks
我有这种形式的数组:[1, 2, 1, 4, 5, 4, 1, 7, 7, 6]我需要将它们切成类似的东西[[1, 2, 1], [4, 5, 4], [1], [7, 7, 6]],其中断点由连续对之间的绝对差异大于1确定.
[1, 2, 1, 4, 5, 4, 1, 7, 7, 6]
[[1, 2, 1], [4, 5, 4], [1], [7, 7, 6]]
在Ruby中有一些我可以利用的魔法,还是我不得不编写一个简单的旧迭代代码?
Ste*_*fan 8
你可以使用Enumerable#slice_when:
Enumerable#slice_when
a = [1, 2, 1, 4, 5, 4, 1, 7, 7, 6] a.slice_when { |i, j| (i - j).abs > 1 }.to_a #=> [[1, 2, 1], [4, 5, 4], [1], [7, 7, 6]]
归档时间:
10 年,11 月 前
查看次数:
53 次
最近记录: