ixa*_*any 3 arrays filter swift
我有两个数组:
let arr1 = ["one.json", "two.json", "three.json"]
let arr2 = ["one.json", "three.json"]
Run Code Online (Sandbox Code Playgroud)
现在我想删除arr2in的所有值arr1,所以我在上面的例子中的预期结果将是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) }
Run Code Online (Sandbox Code Playgroud)
你必须使用Set而不是Array在这种情况下.
let arr1 = Set(["one.json", "two.json", "three.json"])
let arr2 = Set(["one.json", "three.json"])
arr1.subtract(arr2)
Run Code Online (Sandbox Code Playgroud)
基本集合运算
下图描绘了两组-a和b-,其中各种设置操作的结果由阴影区域表示.