Swift数组去重

7,590 阅读1分钟

根据Swift高阶函数去重,得到去重后的数组,保持顺序不变

let arr = ["apple", "strawberry", "pear", "apple", "orange", "orange", "strawberry"]
let results = arr.enumerated().filter { (index,value) -> Bool in
            return arr.firstIndex(of: value) == index
        }.map {
            $0.element
        }

写到数组的扩展里面:

 let arr = ["apple", "strawberry", "pear", "apple", "orange", "orange", "strawberry"]
 arr.removeDuplicate()
 // Array 扩展
 public extension Array where Element: Equatable {
    
    /// 去除数组重复元素
    /// - Returns: 去除数组重复元素后的数组
    func removeDuplicate() -> Array {
       return self.enumerated().filter { (index,value) -> Bool in
            return self.firstIndex(of: value) == index
        }.map { (_, value) in
            value
        }
    }
}