2015-09-23 4 views
1

Ищите сортировку массива var myArray = ["Cat","Zoo","Ball","Cat"] в таком порядке, чтобы все «Cat» (это может быть что угодно) были @ перед массивом, а остальная часть массива отсортирована в алфавитном порядке.Пользовательская сортировка массива строк в swift

Input Array : ["Cat","Zoo","Ball","Cat"] 
Expected Output Array: ["Cat", "Cat", "Ball", "Zoo"] 

ответ

0

Следующий код является одним из решений, которые я нашел:

var myArray = ["Cat","Zoo","Ball","Cat"] 
let OrderString = "Cat" 
myArray.sortInPlace({ (s1, s2) in 
    //Sorting based on OrderString 
    //First string is same as OrderString -- Don't swap order 
    if s1 == OrderString{ 
     return true 
    }else if s2 == OrderString { //Second String is same as OrderString -- Swap order 
     return false 
    } 
    return s1.localizedStandardCompare(s2) == NSComparisonResult.OrderedAscending 
}) 

print(myArray) 

Demo Link

Смежные вопросы