我正在構建一個應用程式,讓您可以選擇按最便宜、最近的位置和附近最便宜的方式對不同加油站的可用燃料串列進行排序。但是,我不知道最后一個的正確代碼是什么。我的代碼現在看起來像這樣:
switch searchMode {
case .queryByNearby:
orderedList.sort { $0.distance < $1.distance }
case .queryByCheapest:
orderedList.sort { $0.price < $1.price }
case .queryByCheapestNearby:
orderedList.sort { $0.price < $1.price && $0.distance < $1.distance }
}
有什么辦法可以做到這一點?
uj5u.com熱心網友回復:
正如一些評論已經提到的那樣,在第三種“附近最便宜”的情況下,您需要決定什么具有更高的優先級、價格或距離。基于此,可以實施以下解決方案。
如果價格具有更高的優先級
switch searchMode {
case .queryByNearby:
orderedList.sort { $0.distance < $1.distance }
case .queryByCheapest:
orderedList.sort { $0.price < $1.price }
case .queryByCheapestNearby:
orderedList.sort { $0.price == $1.price ? $0.distance < $1.distance : $0.price < $1.price }
}
如果距離優先級更高
switch searchMode {
case .queryByNearby:
orderedList.sort { $0.distance < $1.distance }
case .queryByCheapest:
orderedList.sort { $0.price < $1.price }
case .queryByCheapestNearby:
orderedList.sort { $0.distance == $1.distance ? $0.price < $1.price : $0.distance < $1.distance }
}
您可以同時實作并為用戶提供 4 個選項。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/466855.html
上一篇:計算陣列中大于下一個元素的元素C
