繁体   English   中英

过滤两个数组Swift

[英]Filter two arrays Swift

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

var resultsArray = [String]()

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

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

最简单的方法是什么?

谢谢。

使用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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM