你可以用一套来做:
var uniqueValues = Set<String>()
objectsArray = objectsArray.filter{ uniqueValues.insert("\($0.name)|\($0.age)").inserted}
Run Code Online (Sandbox Code Playgroud)
您还可以通过扩展Array类型来概括该方法以涵盖其他组合:
extension Array
{
func filterDuplicate<T>(_ keyValue:(Element)->T) -> [Element]
{
var uniqueKeys = Set<String>()
return filter{uniqueKeys.insert("\(keyValue($0))").inserted}
}
}
objectsArray = objectsArray.filterDuplicate{ ($0.name,$0.age) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1357 次 |
| 最近记录: |