Rails-是否有一个方法本质上是' map. >查找' for数组?



寻找可以遍历列表并返回第一个转换后的值的方法。本质:

[1, 2, 3, 4].magic { |i| 
puts "Checking #{i}"
i ** 2 if i > 2 
}
Checking 1
Checking 2
Checking 3
#=> 9

这里的目标是它像find一样工作,并在获得第一个返回值后停止遍历列表。(注意它从不检查4)但也从块中返回值。(返回9而不是3)

这里的问题是,块执行一些复杂的逻辑,所以我不想映射到整个数组,但我也想使用所述逻辑的值。

可以使用期望的返回值中断循环。这就是你要找的吗?

array = [1, 2, 3, 4]
array.map { |element| break element ** 2 if element > 2 }
# returns 9

相关内容