Swift 数组按照条件(key value)排序,筛选
2018-08-23 本文已影响911人
steveMoriya
Swift数组可以使用系统自带的方法进行排序,筛选,极大的提高了开发的效率
假设有一个数组,dataModels
var dataModels = [dataModel]()
数组中有数据模型,dataModel
数据模型dataModel有字段 rate24,(rate24可以为int, double, string等可以比较的类型)
class dataModel: NSObject {
@objc var rate24 : Double = 0
}
//数组排序
// 按照rate从大到小降序排列
//将排序的结果存入increases数组中
let increases = dataModels.sorted(by: { (a, b) -> Bool in
return a.rate24 > b.rate24
})
// 按照rate从小到大升序排列
//将排序的结果存入decreases数组中
let decreases = dataModels.sorted(by: { (a, b) -> Bool in
return a.rate24 < b.rate24
})
//数组筛选
//筛选出increases中,rate24大于0的元素
//将排序的结果存入newIncreaseMs数组中
let newIncreaseMs = increases.filter({ (a) -> Bool in
return a.rate24 > 0.0
})
//筛选出decreases中,rate24小于0的元素
//将排序的结果存入newDecreaseMs数组中
let newDecreaseMs = decreases.filter({ (a) -> Bool in
return a.rate24 < 0.0
})