swift中, 去除数组中元素的属性相同的元素

2023-12-10  本文已影响0人  小冰山口
extension Array {
    /// 过滤数组中某个属性相同的元素
    /// - Parameter key: 需要过滤的属性
    /// - Returns: 过滤后的数组
    /// - Note: 这个方法只能过滤数组中的元素是对象的情况
    /// - Warning: 这个方法只能过滤数组中的元素是对象的情况
    func removeDuplicates<T: Equatable>(_ key: KeyPath<Element, T>) -> [Element] {
        var result = [Element]()
        for item in self {
            let elements = result.map { $0[keyPath: key] }
            if !elements.contains(item[keyPath: key]) {
                result.append(item)
            }
        }
        return result
    }
}
上一篇 下一篇

猜你喜欢

热点阅读