过滤两个数组Swift

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过滤两个数组Swift相关的知识,希望对你有一定的参考价值。

我有一个空数组和两个数据数组

var resultsArray = [String]()

var array1 = ["1","2","2","3","4"]
var array2 = ["1","2","2","3","4","5","6"]

我的目标是使用与resultsArray不匹配的array2元素(在示例中为“5”和“6”)附加array1

最简单的方法是什么?

谢谢。

答案

使用filter函数

var resultsArray = [String]()

let array1 = ["1","2","2","3","4"]
let array2 = ["1","2","2","3","4","5","6"]

let filteredArray = array2.filter{ !array1.contains($0) }

resultsArray.appendContentsOf(filteredArray)

如果集合包含唯一项目,请考虑使用Set而不是Array

另一答案
var resultsArray: [String] = []

let arrayX = ["1","2","2","3","4"]
let arrayY = ["1","2","2","3","4","5","6","7"]

let setX = Set(arrayX), setY = Set(arrayY)

resultsArray.append(contentsOf: setY.subtracting(setX))

这个答案比使用过滤器更快。

另一答案

使用过滤器函数来查找两个数组中不同数量的元素

let Filter = array2.filter{!array1}
resultArray.appendContentsof(Filter)

以上是关于过滤两个数组Swift的主要内容,如果未能解决你的问题,请参考以下文章

Swift SearchBar 过滤和更新多个数组

为什么我不能在此片段中生成唯一对象数组?

如何在 Swift 中过滤字符串数组

Swift过滤器字符串数组

js简洁代码片段

过滤和排序 swift 数组