<分区>
Array1 = [1, 2, 3, 4, 5, 6]
Array2 = [1,5]
我想得到:
Array1 = [2, 3, 4, 6]
我想通过使用 Set
来做到这一点,因为这些数组可能会变大。
保持数组的顺序也很重要。
<分区>
Array1 = [1, 2, 3, 4, 5, 6]
Array2 = [1,5]
我想得到:
Array1 = [2, 3, 4, 6]
我想通过使用 Set
来做到这一点,因为这些数组可能会变大。
保持数组的顺序也很重要。
最佳答案
用第二个数组中的所有元素创建一个集合, 然后过滤第一个数组以仅获取不的元素 在集合中:
let array1 = [5, 4, 1, 2, 3, 4, 1, 2]
let array2 = [1, 5]
let set2 = Set(array2)
let result = array1.filter { !set2.contains($0) }
print(result) // [4, 2, 3, 4, 2]
这保留了第一个的顺序(和重复元素) 大批。如果第二个数组可以很大,则使用集合是有利的, 因为查找速度更快。
关于arrays - Swift 3 使用集合和维护顺序从一个数组中删除存在于另一个数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43003574/
相关文章:
swift - 使用带有未知字典键的 Swift 4 Codable 协议(protocol)
ios - 当键盘出现 Swift 时出现移动 View 问题
ios - iOS 中 iMessage 扩展中导航栏后面可见的 Collection View
ios - 尝试从我的应用程序切换到设置,但它似乎又回来了……有点像
c++ - 使用不符合 misra 规则的 #define 命令定义数组
swift - 在表格 View 单元格中处理 SWIFT 索引越界问题
javascript - 如何创建 div 的数组结构我匹配的 div id 与 data-id(其他子 div 的 id)?