因此,Ruby有一个select方法,可以根据从块传入的条件从数组中选取元素。Ruby选择方法:检查选择的项目数
例如
arr = [1,2,3,4]
arr.select {|x| x.even? } => [2, 4]
我的问题涉及大阵,我只希望一定数量的选择项。例如,在阵列之外,我只需要匹配条件的前5个数字。
arr.select{|x| x.even?}[0...5]
这是我到目前为止。这是非常缓慢的,因为在选择前五个元素之前,Ruby在整个数组上运行select函数。
我想看看是否有办法停止选择功能,当前五个元素被选中。
例如,如果我能做到这一点
res = arr.select do |x|
x.even?
break if self.length > 5
end
在这种情况下,自对res数组的引用。我认为这个参考文件不会起作用,但我希望它能够说明我的观点。
这正是我所需要的。非常感谢你。 – davidhu2000