我想从数组中删除重复的元素。堆栈溢出有很多答案,但是对于swift 3.
我的阵列:
var images = [InputSource]()
... // append to array
如何从此数组中删除重复的元素?
是否有来自swift 3的原生api?
答案 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
,这样可以消除重复项。