首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift:按多个标准排序数组(权重)

Swift:按多个标准排序数组(权重)
EN

Stack Overflow用户
提问于 2015-11-24 08:55:54
回答 1查看 4K关注 0票数 1

我已经读过类似的问题/答案,但没有一个能解决我的问题。

我有个像这样的东西

代码语言:javascript
复制
class Chat {
    unreadMessages: Int = 0
    messages: Int = 0
}

然后,我有一个聊天对象数组,我需要按多个条件排序,首先通过聊天与切碎器未读消息,然后与聊天的总消息。

Es.

代码语言:javascript
复制
  Obj  TotMes Unread  
  Chat A 10 3   
  Chat B  1 0     
  Chat C  4 0   
  Chat D  9 9   

减少的产出:

代码语言:javascript
复制
Chat D  9 9   
Chat A 10 3   
Chat C  4 0  
Chat B  1 0 

我试着用这种方法,但不要看上去是工作:

代码语言:javascript
复制
let sorted = chats.sort({ (c1, c2) -> Bool in   
   if c1.unreadMessages > c2.unreadMessages {
      return true
   }
   if c1.messages > c2.messages {
      return true
   }        
   return false
})

有人能解释一下这是怎么回事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-24 09:02:06

对于应该涵盖所有需求的c1.unreadMessages < c2.unreadMessages,您还没有条件:

代码语言:javascript
复制
let sorted = chats.sort({ (c1, c2) -> Bool in   
   if c1.unreadMessages > c2.unreadMessages {
      return true
   } else if c1.unreadMessages < c2.unreadMessages {
      return false
   } else if c1.messages > c2.messages {
      return true
   }        
   return false
})
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33889212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档