今天有一个需求需要做到数组中有一条数据一定要排在第一个,刚开始的写法是将这条数据取出来缓存一下,然后将这条数据插入到已经排除掉这条数据的数组中的第一个,代码如下:
let id = "aaa"
let first = self.fullDatas?.filter({ (data) -> Bool in
if id == data.doctorid {
return true
}
return false
}).first
var datas = self.fullDatas?.filter({ (data) -> Bool in
if id != data.doctorid {
return true
}
return false
})
datas?.insert(first!, at: 0)
最后这个datas就是我们要的结果,这种写法看起来很傻,后来我就思考是不是需要用排序来搞定这个问题,做了尝试结果很满意,同样达到了想要的结果,代码如下
let list = fullDatas.sorted(by: { (data1, data2) -> Bool in
if id == data.id {
return true
}
return false
})
//哈哈实现啦