-2

我有一个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 AArray 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 Aand Array C(其第二个元素分别是'a1'and 'c1'array以获得以下内容:

array = [ 
  [ 'b0', 'b1', 'b2' ], # Array B
  ...,                  # Array ... 
  [ 'z0', 'z1', 'z2' ]  # Array Z
]
4

1 回答 1

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]对于其他变体,只需更改您正在查看的元素(或其他)。

于 2013-10-09T15:22:14.333 回答