这:
arry = %w[cat dog fish]
arry.any? {|s| pp s.include?('sh')}
输出:
false
false
true
当我试图通过这样做将元素推入数组时,
tester = []
arry = %w[cat dog fish]
arry.any? {|s| tester << s.include?('sh')}
pp tester
它输出:
[false]
只推送一个元素。不知道为什么我不能将结果从
include?
推送到数组中。如何将所有结果放入数组中?
最佳答案
Enumerable#any?
一旦块返回truthy
值,立即退出。
我不确定为什么您要在这个用例中使用any?
,但发生的情况是:在第一次迭代时,块返回一个数组,这是真实的。
改用#each_with_object
或甚至简单的#map
:
arry.each_with_object([]) { |s, tester| tester << s.include?('sh') }
arry.map { |s| s.include?('sh') }
我的最爱:
arry.map(&/sh/.method(:!~)).map(&:!)
关于ruby - 将来自“any”和“include”的结果插入数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54041569/