如何在 Swift 中删除 UIPickerView 中的重复数据
How to remove duplicate data in the UIPickerView in Swift
我可以知道如何删除所有数据都从 Parse 数据库传递的重复数据吗?我只是 select 一列并将该列数据传递给此选择器视图。
我找了query.wherekey
,但是没有类似SQL语句的DISTINCT函数,那我应该怎么做才能避免数据重复呢?
当您将项目一项一项添加到您的 self.pickerString 数组中时,只需在将新值添加到数组之前验证该数组是否包含新值。例如:
if !self.pickerString.contains(object["Intake"] as! String) {
self.pickerString.append(object["Intake"] as! String)
}
swift 中没有删除数组中重复项的内置函数(如果我错了请纠正我)。但是,您可以使用 'extension' 关键字为数组添加新功能:
extension Array {
func distinct<T: Equatable>() -> [T] {
var newArray = [T]()
for item in self {
if !contains(newArray, item as! T) {
newArray.append(item as! T)
}
}
return newArray
}
}
用法:
let s = ["344","333","1","2","333"]
var p = s.distinct() as [String]
我认为您在 Parse 上没有类似 distinct 的东西,您必须下载所有行然后过滤掉相等的值。
对于函数式方法:
func distinct<T: Equatable>(source: [T]) -> [T] {
var unique = [T]()
for item in source {
if !contains(unique, item) {
unique.append(item)
}
}
return unique
}
[...]
self.pickerString = distinct(objects)
[...]
我可以知道如何删除所有数据都从 Parse 数据库传递的重复数据吗?我只是 select 一列并将该列数据传递给此选择器视图。
我找了query.wherekey
,但是没有类似SQL语句的DISTINCT函数,那我应该怎么做才能避免数据重复呢?
当您将项目一项一项添加到您的 self.pickerString 数组中时,只需在将新值添加到数组之前验证该数组是否包含新值。例如:
if !self.pickerString.contains(object["Intake"] as! String) {
self.pickerString.append(object["Intake"] as! String)
}
swift 中没有删除数组中重复项的内置函数(如果我错了请纠正我)。但是,您可以使用 'extension' 关键字为数组添加新功能:
extension Array {
func distinct<T: Equatable>() -> [T] {
var newArray = [T]()
for item in self {
if !contains(newArray, item as! T) {
newArray.append(item as! T)
}
}
return newArray
}
}
用法:
let s = ["344","333","1","2","333"]
var p = s.distinct() as [String]
我认为您在 Parse 上没有类似 distinct 的东西,您必须下载所有行然后过滤掉相等的值。
对于函数式方法:
func distinct<T: Equatable>(source: [T]) -> [T] {
var unique = [T]()
for item in source {
if !contains(unique, item) {
unique.append(item)
}
}
return unique
}
[...]
self.pickerString = distinct(objects)
[...]