swift检查两个数组是否包含Same元素并获取元素?

时间:2016-12-28 05:30:56

标签: ios iphone swift

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

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvRssElement"
android:paddingTop="2dip"
android:paddingBottom="3dip"
android:maxLines="5"
android:maxLength="120"
android:ellipsize="end"
/>

我想比较a1和a2,并从swift 2.2中的比较中获得结果let a1 = [1, 2, 3] let a2 = [4, 2, 5] 。怎么样?

2 个答案:

答案 0 :(得分:13)

您可以使用swift的过滤器功能

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

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

print(a)

print:[2]

如果数据是

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

打印:[2,3]

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

let result = a.first

你得到第一个共同元素

的可选Int(Int?)

答案 1 :(得分:0)

另一种替代方法是使用Sets:

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