一尘不染

如何使用Swift显示数组的唯一元素?

swift

我有一个公式重新调整数组作为示例var Array = [a,s,d,s,f,g,g,h,e]。我想要的是运行一个for循环或其他可以让我回来的选项a,s,d,f,g,h,e-仅提供唯一值。如何使用ios
Swift执行此操作?


阅读 247

收藏
2020-07-07

共1个答案

一尘不染

如果您不关心订单:

只需使用一组:

let set: Set = ["a", "s", "d", "s", "f", "g" , "g", "h", "e"]
print(set) // ["a", "s", "f", "g", "e", "d", "h"]

如果您关心订单:

使用此扩展名,该扩展名使您可以Sequence在保留顺序的同时删除any的重复元素:

extension Sequence where Iterator.Element: Hashable {
    func unique() -> [Iterator.Element] {
        var alreadyAdded = Set<Iterator.Element>()
        return self.filter { alreadyAdded.insert($0).inserted }
    }
}

let array = ["a", "s", "d", "s", "f", "g" , "g", "h", "e"]
let result = array.unique()
print(result) // ["a", "s", "d", "f", "g", "h", "e"]
2020-07-07