根据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
}
}
}