我有两个数组:
let arr1 = ["one.json", "two.json", "three.json"]
let arr2 = ["one.json", "three.json"]
现在我想要从arr1
中删除所有arr2
的值,所以在上面的例子中,我的预期结果将是let arrFiltered = ["two.json"]
。我知道如何使用for循环来处理它,但是我想知道是否有更简单和性能更好的解决方案?
filter
函数实现的解决方案。let arr1 = ["one.json", "two.json", "three.json"]
let arr2 = ["one.json", "three.json"]
let arrFiltered = arr1.filter{ !arr2.contains($0) }
在这种情况下,您需要使用Set
而不是Array
。
let arr1 = Set(["one.json", "two.json", "three.json"])
let arr2 = Set(["one.json", "three.json"])
arr1.subtract(arr2)
基本集合操作
下图展示了两个集合a和b,以阴影区域表示各种集合操作的结果。