如何快速从二维数组中删除特定元素

ikb*_*bal 0 arrays filter swift

我有一个[[String]]喜欢

myArr = [["1_2","1_3","1_4"], ["2_1","2_2","2_3"], ["3_1","3_2","3_3"]]然后

我想删除这样的元素 bypassArr = ["1_2","2_3","3_2"]

如何bypassArrmyArr使用元素中删除。或者我怎样才能得到这种类型的结果。

result = [["1_3","1_4"], ["2_1","2_2"], ["3_1","3_3"]]

Mar*_*n R 5

如果目的是从bypassArr\xe2\x80\x9cinner\xe2\x80\x9d 数组中删除所有元素,则可以使用和 的myArr组合来实现:map()filter()

\n\n
let myArr = [["1_2","1_3","1_4"], ["2_1","2_2","2_3"], ["3_1","3_2","3_3"]]\nlet bypassArr = ["1_2","2_3","3_2"]\n\nlet result = myArr.map { innerArray in\n    innerArray.filter { elem in\n        !bypassArr.contains(elem)\n    }\n}\n\nprint(result)\n// [["1_3", "1_4"], ["2_1", "2_2"], ["3_1", "3_3"]]\n
Run Code Online (Sandbox Code Playgroud)\n\n

内部数组被过滤以删除给定的元素,外部数组被映射到过滤结果。

\n\n

或者使用简写参数表示法:

\n\n
let result = myArr.map { $0.filter { !bypassArr.contains($0) }}\n
Run Code Online (Sandbox Code Playgroud)\n