Итак, я хочу отсортировать массив UnitMass, но я хочу отсортировать его в заданном c макете. Я знаю, как сортировать по алфавиту, но это не совсем то, что я хочу, чтобы кто-нибудь знал, как я могу это сделать?
Можно ли отсортировать массив таким образом, и как я могу это сделать или я могу определить как должен выглядеть массив?
let spesificLayoutOfUnits =[ UnitMass.grams, UnitMass.kilograms, UnitMass.metricTons, UnitMass.stones, UnitMass.pounds, UnitMass.ounces ]
var toBeSorted = [ UnitMass.kilograms, UnitMass.pounds, UnitMass.metricTons, UnitMass.ounces, UnitMass.grams ]
Я использую массив spesificLayoutOfUnits в качестве массива всех опций, которые есть у пользователя. Затем добавьте единицы из этого массива в массив toBeSorted, который является массивом выбранных единиц.
var options = spesificLayoutOfUnits as! [UnitMass]
var tempArray = [UnitMass]()
while toBeSorted.endIndex > positionOfUnit {
tempArray.append(toBeSorted.removeLast())
}
toBeSorted.append(options.remove(at: positionOfUnit))
while !tempArray.isEmpty {
toBeSorted.append(tempArray.removeLast())
}