我有三个我想要相交的数组,但我想忽略那些空的数组.
这段代码看起来太冗长了.有更有效的方法吗?
if a.empty? && b.empty?
abc = c
elsif a.empty? && c.empty?
abc = b
elsif b.empty? && c.empty?
abc = a
elsif a.empty?
abc = b & c
elsif b.empty?
abc = a & c
elsif c.empty?
abc = a & b
else
abc = a & b & c
end
Run Code Online (Sandbox Code Playgroud)
edg*_*ner 11
怎么样
abc = [a,b,c].reject(&:empty?).reduce(:&)
Run Code Online (Sandbox Code Playgroud)
第一部分,[a,b,c]将您的数组放入数组中.第二个位在每个元素上reject运行empty?,如果结果为true则拒绝它,返回一个数组,其中删除了空数组.最后一部分,reduce运行相当于你的,a & b & c但由于我们在上一步中丢弃了所有空数组,因此你不会得到一个空结果.
| 归档时间: |
|
| 查看次数: |
320 次 |
| 最近记录: |