如何删除数组中的重复元素 - swift 3

时间:2017-03-21 07:54:23

标签: ios swift xcode swift3

我想从数组中删除重复的元素。堆栈溢出有很多答案,但是对于swift 3.

我的阵列:

var images = [InputSource]()
... // append to array

如何从此数组中删除重复的元素?

是否有来自swift 3的原生api?

3 个答案:

答案 0 :(得分:5)

确保InputSource实现Hashable,否则Swift无法知道哪些元素相等,哪些元素不相等。

你这样做:

let withoutDuplicates = Array(Set(images))

说明:

images首先变为集合。这将删除所有重复项,因为集合只能包含不同的元素。然后我们将集合转换回数组。

根据this answer,这可能是由编译器优化的。

答案 1 :(得分:1)

您可能想要使用Set

//初始化数组 var sample = [1,2,3,4,5,2,4,1,4,3,6,5]

//删除重复项: sample = Array(Set(sample))

print(sample)

答案 2 :(得分:1)

如果订单不重要,则应使用Set代替。集仅包含唯一元素。您还可以从数组中创建Set,这样可以消除重复项。