对数组进行两次排序,保存第一个排序并追加第二个排序

时间:2018-11-06 16:54:43

标签: arrays swift sorting

我有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

1 个答案:

答案 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()