作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想根据 3 个标准对一组人进行排序:这个数组由具有 3 个信息的客户组成:
我可以按姓名对客户进行排序,没问题:
customersList.sort(by: {$0.name!.compare($1.name!) == .orderedAscending})
我可以按 bool 值和名称排序,没问题:
customersList.sort {$1.hasPurchased == $0.hasPurchased ? ($0.name!.compare($1.name!) == .orderedAscending) : $1.hasPurchased && !$0.hasPurchased}
但我想做的是在单个数组中排序:
这样,我会将尚未购买的“ABC”客户保存在一个数组中,然后将购买的客户按购买日期排序(在本例中为非空条件)...
说说你的看法
最佳答案
请注意,sort
的参数称为“areInIncreasingOrder”。给定两个 Customer
对象,您应该返回它们是否按递增顺序排列。因此,要确定两个客户是否按照您的 2 条规则递增:
hasPurchased
值,如果第二个购买了而第一个没有购买,则它们按升序排列hasPurchased
值相同且为 false
,则如果第一个的名字与第二个的名字按升序排列,则它们按升序排列hasPurchased
值 true
,则如果第一个的购买日期与第二个的购买日期按升序排列,则他们按升序排列日期将其转化为代码:
customerList.sort { c1, c2 in
if c1.hasPurchased != c2.hasPurchased {
// non-purchased customers are ordered before purchased customers
return c2.hasPurchased && !c1.hasPurchased
} else if !c1.hasPurchased { // both are non-purchased customers
// sort by name
return c1.name < c2.name
} else { // both are purchased customers
// sort by date
return c1.purchaseDate! < c2.purchaseDate!
}
}
关于arrays - Swift - 对具有 bool 值和可选日期的人员数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68710743/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!