Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何检查数组的所有元素是否满足条件?_Arrays_Ruby_Conditional Statements - Fatal编程技术网

Arrays 如何检查数组的所有元素是否满足条件?

Arrays 如何检查数组的所有元素是否满足条件?,arrays,ruby,conditional-statements,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 cond=true 每道菜都有| 如果e.nil?| |e、 至i

我正在使用Ruby 2.4。如何检查数组的所有元素是否满足条件?我有

cond = true
arr.each do |e|
  if e.nil? || e.to_i < 5
    cond = false
    break
   end
end
cond=true
每道菜都有|
如果e.nil?| |e、 至i<5
cond=false
打破
终止
终止
但我觉得有一个更有效的方法来做这件事

如何检查数组的所有元素是否满足条件

使用
all?
。例如:

[1, 2, 3].all? { |i| i < 4 } #=> true
[1,2,3]。所有人?{| i | i<4}#=>正确
如何检查数组的所有元素是否满足条件

使用
all?
。例如:

[1, 2, 3].all? { |i| i < 4 } #=> true
[1,2,3]。所有人?{| i | i<4}#=>正确

您可以将其重写为

arr.all? { |e| e.to_i >= 5 }

你可以把它改写成

arr.all? { |e| e.to_i >= 5 }

看起来
i
可以为零。看起来
i
可以为零。是的,很好:)问题是,“如何检查数组中的所有元素是否满足条件?”。您的答案是OP给出的特定示例的解决方案,而不是一般的解决方案,因此它的用处有限。例如,假设您只知道
arr
是任何对象的数组,
obj
,其中可能包括
nil
,并且以方法
m
的形式给出了一个条件,该方法将
obj
作为参数,并返回
true
false
。然后你可以写
arr.all?{| obj |!obj.nil?&m(obj)}
。这个评论也适用于其他答案。是的,很好:)问题是,“如何检查数组中的所有元素是否满足条件?”。您的答案是OP给出的特定示例的解决方案,而不是一般的解决方案,因此它的用处有限。例如,假设您只知道
arr
是任何对象的数组,
obj
,其中可能包括
nil
,并且以方法
m
的形式给出了一个条件,该方法将
obj
作为参数,并返回
true
false
。然后你可以写
arr.all?{| obj |!obj.nil?&m(obj)}
。这一评论也适用于其他答案。