【发布时间】:2012-11-10 02:35:38
【问题描述】:
我正在寻找一种更惯用的方法来过滤掉数组的 nil-or-empty 元素。
我有很多形式的方法:
def joined
[some_method, some_other_method].compact.reject(&:empty?).join(' - ')
end
这将获取 some_method 和 some_other_method 的结果,并仅返回非零(compact 本质上等同于 reject(&:nil?))且非空的结果。
Array 或 Enumerable 中是否有任何东西可以一次性获得相同的结果?
【问题讨论】:
-
有 activesupport 是,有核心 Ruby 没有。
-
你的方法真的不应该关心数组中是否有空白值。重构候选人!
-
@padde 为什么不关心?数组只在方法中创建,以避免重复代码。过滤是函数的全部存在理由:取 X 和/或 Y 中的任何一个非零和非空白,并对它们做一些事情(在示例中,用连字符连接它们) .
标签: ruby idioms enumerable