1
舉例來說,我有一個如何枚舉數組中的連續元素?
arr = [1,2,3,4]
如果我叫arr.each
,我將訪問:
1
2
3
4
但我想
1 2
2 3
3 4
是否有可能內置的功能?如果不是,最佳做法是什麼?
另一個問題:如果我想要1 2
和3 4
?
舉例來說,我有一個如何枚舉數組中的連續元素?
arr = [1,2,3,4]
如果我叫arr.each
,我將訪問:
1
2
3
4
但我想
1 2
2 3
3 4
是否有可能內置的功能?如果不是,最佳做法是什麼?
另一個問題:如果我想要1 2
和3 4
?
你可能想看看each_cons你的第一種情況:
(1..10).each_cons(3) {|a| p a}
# outputs below
[1, 2, 3]
[2, 3, 4]
[3, 4, 5]
[4, 5, 6]
[5, 6, 7]
[6, 7, 8]
[7, 8, 9]
[8, 9, 10]
對於你的第二個案例(希望組元素),需要使用each_slice:
(1..10).each_slice(3) {|a| p a}
# outputs below
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[10]
這些方法要麼接受一個指定集合大小的整數,因此您可以指定2
而不是3
(示例直接來自文檔)。
標準建議:仔細閱讀字符串/數組/可枚舉文檔:http://www.ruby-doc.org/core-1.9.2/Enumerable.html – tokland