我试图用几个值对数组进行排序,不只是一个而是三个我可以这样排序
mysocialArray.sort({$0["date"] > $1["date"]})
这样可以正常工作,但我可以找到任何地方,然后再对它进行排序,以便我按时间排序和另一种排序。所以应该排序三次。当我只是添加另一种时,它没有考虑日期。
然后,排序的json输出将作为字符串加载到数组中以显示在viewcontroller
上我该如何解决这个问题?
感谢
答案 0 :(得分:0)
鉴于您的要求“这种方式,尚未阅读的最新帖子位于顶部”,看起来您希望按多个标准排序。我在黑暗中打字,所以你可能需要调整它以适合你的情况:
mySocialArray.sort {
// First sort by read status. Assuming read is of type Bool
let (read1, read2) = ($0["read"] ? 1 : 0, $1["read"] ? 1 : 0)
if read1 != read2 {
return read1 > read2
}
// Then short by date. I assume date is of type NSDate
let (date1, date2) = ($0["date"], $1["date"])
if date1.timeIntervalSince1970 != date2.timeIntervalSince1970 {
return date1 > date2
}
// And lastly sort by time
return $0["time"] > $1["time"]
}