【问题标题】:swift check if two array contains Same element and get the element? [duplicate]快速检查两个数组是否包含相同的元素并获取元素? [复制]
【发布时间】:2016-12-28 05:30:56
【问题描述】:

如何快速比较两个具有共同元素的数组并获取该元素?

let a1 = [1, 2, 3]
let a2 = [4, 2, 5]

我想比较 a1 和 a2 并从 swift 2.2 中的比较中得到结果2。如何?

【问题讨论】:

标签: ios iphone swift


【解决方案1】:

你可以使用swift的过滤功能

let a1 = [1, 2, 3]
let a2 = [4, 2, 5]

let a = a1.filter () { a2.contains($0) }

print(a)

打印:[2]

如果数据是

let a1 = [1, 2, 3]
let a2 = [4, 2, 3, 5]

打印:[2, 3]

如果你想要 Int 的结果不在数组中

let result = a.first

你会得到可选的 Int(Int?) 和第一个公共元素的结果

【讨论】:

  • 是的,它适用于所有阵列。条件是只有两个数组是相同的类型。这是 [Int] 数组
  • 我怎样才能得到一个不是数组而是简单的 Int?
  • @JasonBourne 你的数组只有一个公共对象吗?
  • 假设它有一个共同的对象
  • 您应该使用Set 来加快.contains() 的调用速度。
【解决方案2】:

另一种选择是使用集合:

let a1 = [1, 2, 3]
let a2 = [4, 2, 5]

let a = Set(a1).intersection(Set(a2)) // <- getting the element itself
print(a) // 2

let contains: Bool = !Set(a1).isDisjoint(with: Set(a2)) // <- checking if they have any common element
print(contains) // true

【讨论】:

    猜你喜欢
    • 2019-08-24
    • 1970-01-01
    • 2020-11-21
    • 2023-03-18
    • 2012-08-21
    • 2023-02-10
    • 1970-01-01
    • 2016-10-13
    • 2019-04-27
    相关资源
    最近更新 更多