我有var array: [Double] = [0.0, 1.000002, 0.0, 0.0]
。
我想对数组进行排序。第一次,我需要按我的优先级排序,例如:
secondElement: 1.000002
firstElement: 0.0
thirdElement: 0.0
fourthElement: 0.0
后来我需要按 arc4random 进行第二次排序,但需要保存第一类(var2在所有最重要的上。其他元素按 arc4random 进行排序)。我想看这样的数组:
secondElement: 1.000002
thirdElement: 0.0
firstElement: 0.0
fourthElement: 0.0
或
secondElement: 1.000002
thirdElement: 0.0
fourthElement: 0.0
firstElement: 0.0
答案 0 :(得分:0)
您可以这样做:
var array: [Double] = [0.0, 1.000002, 0.0, 0.0]
let sorted: [Double] = array.sorted(by: >)
let sortAndRandomize: [Double] = sorted.prefix(1) + sorted.dropFirst().shuffled()
如果您想变异原始数组,则:
var array: [Double] = [0.0, 1.000002, 0.0, 0.0]
array.sort(by: >)
array = array.prefix(1) + array.dropFirst().shuffled()