我循环遍历数组self.sisters如下:
brothers_in_law = []
self.sisters&.each do |sister|
brothers_in_law << sister.spouse (if !sister.spouse.nil?)
end
Run Code Online (Sandbox Code Playgroud)
我怎样才能以红宝石的方式编写它,并且在一行中编写它?
在 ruby 中,一个经验法则是:如果你有一个each循环用于除简单迭代元素之外的任何事情,那么有 99% 的机会有更好的方法。
brothers_in_law = sisters.map(&:spouse).reject(&:nil?)
# or
brothers_in_law = sisters.map(&:spouse).compact
# or in ruby 2.7+
brothers_in_law = sisters.filter_map(&:spouse)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |