gpt4 book ai didi

ios - 快速检查一个数组是否包含另一个数组的元素

转载 作者:行者123 更新时间:2023-12-01 18:34:19 24 4
gpt4 key购买 nike

我需要检查一个数组是否至少包含另一个数组的一个或多个元素,并迅速将它们打印出来。
这是我的情况:

var array1 = ["user1", "user2", "user3", "user4"]
var array2 = ["user3, "user5", "user7", "user9, "user4"]

//I need to get back an array that says that both the arrays contains ex. "user3" and "user4"
我在网上搜索,但只找到了相反的答案,可以帮助您使用 array.symmetricDifference()检查2个数组之间是否存在差异
任何帮助吗?谢谢

最佳答案

您可以简单地从第一个集合中创建一个集合,并使其与另一个集合相交:

let array1 = ["user1", "user2", "user3", "user4"]
let array2 = ["user3", "user5", "user7", "user9", "user4"]
let intersection = Array(Set(array1).intersection(array2)) // ["user4", "user3"]

请注意,结果集合的顺序是不可预测的。如果您想保留第一个集合的顺序,则可以创建第二个集合的集合并过滤无法插入其中的元素:
var set = Set(array2)
let intersection = array1.filter { !set.insert($0).inserted } // ["user3", "user4"]

您还可以在RangeReplaceableCollection上创建自己的交集方法:
extension RangeReplaceableCollection {
func intersection<S: Sequence>(_ sequence: S) -> Self where S.Element == Element, Element: Hashable {
var set = Set(sequence)
return filter { !set.insert($0).inserted }
}
}

用法:
let intersection = array1.intersection(array2)  // ["user3", "user4"]

关于ios - 快速检查一个数组是否包含另一个数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63193618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com