【发布时间】:2017-06-20 05:29:53
【问题描述】:
我使用的是 Ruby 2.4。如何检查我的数组的所有元素是否满足条件?我有
cond = true
arr.each do |e|
if e.nil? || e.to_i < 5
cond = false
break
end
end
但我觉得有一种更有效的方法来做到这一点。
【问题讨论】:
标签: arrays ruby conditional-statements
我使用的是 Ruby 2.4。如何检查我的数组的所有元素是否满足条件?我有
cond = true
arr.each do |e|
if e.nil? || e.to_i < 5
cond = false
break
end
end
但我觉得有一种更有效的方法来做到这一点。
【问题讨论】:
标签: arrays ruby conditional-statements
如何检查数组的所有元素是否满足条件?
使用all?。例如:
[1, 2, 3].all? { |i| i < 4 } #=> true
【讨论】:
i 可以为nil。
你可以改写成
arr.all? { |e| e.to_i >= 5 }
【讨论】:
arr 是任何对象的数组obj,其中可能包括nil,并且给您一个以m 方法形式的条件,它采用@ 987654326@ 作为参数并返回 true 或 false。然后你可以写arr.all? { |obj| !obj.nil? && m(obj) }。此评论也适用于其他答案。