Swift 模型数组去重 - lidaoyuan/Notes GitHub Wiki

extension Array {

    func handleFilter<E: Equatable>(_ filterCall: (Element) -> E) -> [Element] {
        var temp = [Element]()
        for model in self {
        
            let identifer = filterCall(model)
           
            if !temp.map( { filterCall($0) } ).contains(identifer) {
                temp.append(model)
            }
        }
        return temp
    }
}
// 调用
self.searchList = self.searchList.handleFilter({ $0.userId })
// $0.userId 过滤条件