swift数组中一条数据置顶【原创】

今天有一个需求需要做到数组中有一条数据一定要排在第一个,刚开始的写法是将这条数据取出来缓存一下,然后将这条数据插入到已经排除掉这条数据的数组中的第一个,代码如下:

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 }) //哈哈实现啦

说点什么

avatar
  Subscribe  
提醒