gpt4 book ai didi

ruby - 相交非空数组

转载 作者:数据小太阳 更新时间:2023-10-29 07:23:11 25 4
gpt4 key购买 nike

我想要相交三个数组,但我想忽略那些为空的数组。

这段代码似乎太冗长了。有没有更有效的方法?

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

最佳答案

怎么样

abc = [a,b,c].reject(&:empty?).reduce(:&)

第一部分,[a,b,c] 将您的数组放入一个数组中。第二位 reject在每个元素上运行 empty? 并在结果为真时拒绝它,返回一个数组数组,其中删除了空数组。最后一部分,reduce运行与您的 a & b & c 等效的操作,但由于我们在上一步中丢弃了所有空数组,因此您最终不会得到空结果。

关于ruby - 相交非空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13324652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com