Arrays Swift 2.0检查多维数组是否包含特定数组

Arrays Swift 2.0检查多维数组是否包含特定数组,arrays,swift2,Arrays,Swift2,我有一套正确的组合,如下所示 [["dbc", "dbs", "dbt"], ["dyc", "dys", "dyt"], ["drc", "drs", "drt"]] 我希望看到我的组合是否包含正确的组合 [["drs", "gbc", "lrs"], ["grt", "lbc", "lbt"], ["drc", "drs", "drt"], ["dyc", "dys", "dyt"]] 如果有任何匹配项,则打印出正确的组合 我已经测试过。contains,但我想它只适用于在一维数组中查找

我有一套正确的组合,如下所示

[["dbc", "dbs", "dbt"], ["dyc", "dys", "dyt"], ["drc", "drs", "drt"]]
我希望看到我的组合是否包含正确的组合

[["drs", "gbc", "lrs"], ["grt", "lbc", "lbt"], ["drc", "drs", "drt"], ["dyc", "dys", "dyt"]]
如果有任何匹配项,则打印出正确的组合


我已经测试过。contains,但我想它只适用于在一维数组中查找一个元素。如何检查多维数组是否包含特定数组?

可以使用
NSMutableSet
intersectSet
方法:

let correct = [["dbc", "dbs", "dbt"], ["dyc", "dys", "dyt"], ["drc", "drs", "drt"]]
let all = [["drs", "gbc", "lrs"], ["grt", "lbc", "lbt"], ["drc", "drs", "drt"], ["dyc", "dys", "dyt"]]

let correctSet = NSSet(array: correct)
let allSet = NSMutableSet(array: all)
allSet.intersectSet(correctSet as Set<NSObject>)

print(allSet) // prints (("drc", "drs", "drt"), ("dyc", "dys", "dyt"))
let correct=[[“dbc”、“dbs”、“dbt”]、[“dyc”、“dys”、“dyt”]、[“drc”、“drs”、“drt”]]
让所有=[“drs”、“gbc”、“lrs”]、[“grt”、“lbc”、“lbt”]、[“drc”、“drs”、“drt”]、[“dyc”、“dys”、“dyt”]]
设correctSet=NSSet(数组:correct)
设allSet=NSMutableSet(数组:all)
allSet.intersectSet(正确设置为集合)
打印(所有集)//打印((“drc”、“drs”、“drt”),(“dyc”、“dys”、“dyt”))

因此,换句话说,您有两个元素列表(其中一个元素是由3个字符串组成的数组),您希望找到这两个列表的交集

let corrects : Set = [["dbc", "dbs", "dbt"], ["dyc", "dys", "dyt"], ["drc", "drs", "drt"]]
let all : Set = [["drs", "gbc", "lrs"], ["grt", "lbc", "lbt"], ["drc", "drs", "drt"], ["dyc", "dys", "dyt"]]

let intersection = Array(corrects.intersect(all))

intersection // [["dyc", "dys", "dyt"], ["drc", "drs", "drt"]]
希望这有帮助


另外,我回答的逻辑与egor.zhdan描述的类似。我只是使用Swift原生
Set
struct,而不是从Objective-C桥接的
NSSet
/
NSMutableSet