如何在 Swift 中以比這更好的方式排列陣列?我確定有一種更簡單、更短的方法來做到這一點?!我使用了 for 回圈和 if 條件,然后我在單獨的陣列中分配了最小的條件。我認為這可以通過一個單一的陣列功能來完成。
如何按順序對一組數字進行排序?
var sortarray = [0, 0, 0, 0]
var arrio = [56, 78, 54, 91]
var smallestNumber = 0
var indexNumber = 0
print("unorder array was: \(arrio)")
for i in 0...3 {
if arrio[0] < arrio[1] {
smallestNumber = arrio[0]
indexNumber = 0
} else {
smallestNumber = arrio[1]
indexNumber = 1
}
if smallestNumber >= arrio[2] {
smallestNumber = arrio[2]
indexNumber = 2
}
if smallestNumber >= arrio[3] {
smallestNumber = arrio[3]
indexNumber = 3
}
sortarray[i] = smallestNumber
arrio[indexNumber] = 1000000
}
print("array after sorting from smaller to bigger has become: \(sortarray)")
uj5u.com熱心網友回復:
您可以使用該方法sorted(by:)創建陣列的排序版本,或sort(by:)對陣列進行原地排序。(兩者實際上都對符合Sequence協議的物件進行操作。陣列符合Sequence。)您使用哪個版本取決于您的用例。
uj5u.com熱心網友回復:
你的意思是你需要按升序對陣列進行排序
var arrio = [56, 78, 54, 91]
arrio = arrio.sorted(by: < )
debugPrint(arrio)
開/關:
[54, 56, 78, 91]
編輯 1:
正如 Leo 在下面的評論中指出的那樣,sort在這個陣列上使用 mutating 函式來對它進行排序而不是使用sorted(by:which 將創建一個新的排序陣列是絕對有意義的。陣列被宣告為var(你不能像sort在 a 上使用變異函式let)。因此更新答案以反映相同
var arrio = [56, 78, 54, 91]
arrio.sort()
debugPrint(arrio)
這是你想要的嗎
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/322510.html
