过滤以从数组中排除元素

2024-01-12

尝试从数组中过滤一些条目。不能保证它们位于主数组中,因此我正在通过迭代进行测试。

total = ['alpha', 'bravo', 'charlie', 'delta', 'echo']
hide = ['charlie', 'echo']

pick = []
for i in total
  if !hide.include?(i)
    puts i
    pick.push(i)
  end
end
puts pick

这不起作用。有没有更好的方法来提供这种过滤器?


数组#排除(Rails 6+)

如果您使用 Rails(或独立的 ActiveSupport),从版本 6 开始,有一个数组#排除 https://api.rubyonrails.org/classes/Array.html#method-i-excluding方法,返回不包括指定元素的数组的副本。

["David", "Rafael", "Aaron", "Todd"].excluding("Aaron", "Todd") # => ["David", "Rafael"]
[ [ 0, 1 ], [ 1, 0 ] ].excluding([ [ 1, 0 ] ]) # => [ [ 0, 1 ] ]

因此,您的示例可以重写如下:

total = ['alpha', 'bravo', 'charlie', 'delta', 'echo']
hide = ['charlie', 'echo']

pick = total.excluding(hide)
# => ['alpha', 'bravo', 'delta']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

过滤以从数组中排除元素 的相关文章

随机推荐