我有两个数组:
let arr1 = ["one.json", "two.json", "three.json"]
let arr2 = ["one.json", "three.json"]
现在我要删除arr2
中arr1
的所有值,因此上面示例中的预期结果为let arrFiltered = ["two.json"]
。我知道如何使用for循环处理这个问题,但是,我认为可能有一个更简单,更面向性能的解决方案?
答案 0 :(得分:5)
使用filter
函数
let arr1 = ["one.json", "two.json", "three.json"]
let arr2 = ["one.json", "three.json"]
let arrFiltered = arr1.filter{ !arr2.contains($0) }
答案 1 :(得分:5)
在这种情况下,您必须使用Set
代替Array
。
let arr1 = Set(["one.json", "two.json", "three.json"])
let arr2 = Set(["one.json", "three.json"])
arr1.subtract(arr2)
基本集合操作
下图描绘了两组-a和b-的结果 由阴影区域代表的各种集合操作。