我有一个array
数组,如下所示:
array = [
[ 'a0', 'a1', 'a2' ], # Array A
[ 'b0', 'b1', 'b2' ], # Array B
[ 'c0', 'c1', 'c2' ], # Array C
..., # Array ...
[ 'z0', 'z1', 'z2' ] # Array Z
]
并希望从list
中删除第一个元素不存在的数组:
list = [ 'a0', 'c0' ]
即Array A
和Array C
(其第一个元素分别为'a0'
和'c0'
)以获得以下内容:
array = [
[ 'b0', 'b1', 'b2' ], # Array B
..., # Array ...
[ 'z0', 'z1', 'z2' ] # Array Z
]
我该怎么做?
我想对another_list
中没有第二个元素的数组做类似的事情。
another_list = [ 'a1', 'c1' ]
array = [
[ 'a0', 'a1', 'a2' ], # Array A
[ 'b0', 'b1', 'b2' ], # Array B
[ 'c0', 'c1', 'c2' ], # Array C
..., # Array ...
[ 'z0', 'z1', 'z2' ] # Array Z
]
在这种情况下,我想从Array A
删除Array C
和'a1'
(其第二个元素分别为'c1'
和array
)以获取以下内容:
array = [
[ 'b0', 'b1', 'b2' ], # Array B
..., # Array ...
[ 'z0', 'z1', 'z2' ] # Array Z
]
答案 0 :(得分:2)
list = [ 'a0', 'c0' ]
array = [
[ 'a0', 'a1', 'a2' ], # Array A
[ 'b0', 'b1', 'b2' ], # Array B
[ 'c0', 'c1', 'c2' ], # Array C
[ 'z0', 'z1', 'z2' ] # Array Z
]
array2 = array.reject { |sub| list.include?(sub.first) }
如果您真的想要丢失这些项目,则 array2
可能只是array
。对于其他变体,只需更改您正在查看的元素(sub[1]
或其他)。