做网站模板在哪儿找,全国免费分类信息发布平台,运营培训班学费大概多少,网站建设合同书保密条款使用 reduce 方法去重
使用 reduce 方法结合 contains 方法可以实现去重。reduce 方法用于将数组的元素进行累积计算#xff0c;而 contains 方法用于检查元素是否已经存在于结果数组中。
struct SearchRecord: Equatable {let id: Intlet name: String
}let records [Sear…使用 reduce 方法去重
使用 reduce 方法结合 contains 方法可以实现去重。reduce 方法用于将数组的元素进行累积计算而 contains 方法用于检查元素是否已经存在于结果数组中。
struct SearchRecord: Equatable {let id: Intlet name: String
}let records [SearchRecord(id: 1, name: Record 1),SearchRecord(id: 2, name: Record 2),SearchRecord(id: 1, name: Record 1),SearchRecord(id: 3, name: Record 3)
]let uniqueRecords records.reduce([]) { result, element inreturn result.contains(element) ? result : result [element]
}print(uniqueRecords)
在上面的代码中我们为 SearchRecord 结构体添加了 Equatable 协议并实现了相等性比较。然后我们使用 reduce 方法进行去重操作。如果结果数组 result 中已经包含了当前元素 element则直接返回结果数组否则将当前元素追加到结果数组中。
注意对于自定义对象类型你需要根据实际情况实现 Equatable 协议中的 操作符来定义对象相等的逻辑。