Ruby 具有多个条件的数组选择
我可以做到:Ruby 具有多个条件的数组选择,ruby,arrays,Ruby,Arrays,我可以做到: @items = @items.select {|i| i.color == 'blue'} @items = @items.select {|i| i.color == 'blue' || i.color == 'red'} 如果给我一个未知数量的颜色,我想把它们全部选出来怎么办?i、 e ['red','blue','green','purple'] # or ['blue','red'] 我一直在编写一堆代码,这些代码创建了几个临时数组,然后将它们合并或展平为一个数组,但
@items = @items.select {|i| i.color == 'blue'}
@items = @items.select {|i| i.color == 'blue' || i.color == 'red'}
如果给我一个未知数量的颜色,我想把它们全部选出来怎么办?i、 e
['red','blue','green','purple']
# or
['blue','red']
我一直在编写一堆代码,这些代码创建了几个临时数组,然后将它们合并或展平为一个数组,但我对此非常不满意。尝试以下方法:
colors = ['red','blue','green','purple']
@items = @items.select { |i| colors.include?(i.color) }
您可能还想考虑这一点,对于现成的更改:
@items.reject! { |i| !colors.include?(i.color) }
我不确定我是否完全理解你的问题,但是否适合你
colors_array = ['blue','red','whatever']
@items = @items.select {|i| colors_array.include?(i)}
太棒了,第二个很完美。