Swift 4 Sorting Многомерный массив - PullRequest
0 голосов
/ 26 апреля 2018

Очень плохо знаком со Swift. У меня есть многомерный массив из примерно 500 записей

[10, 2, 4, 10, 23, 56]
[0, 12, 14, 20, 28, 42]
[0, 2, 4, 10, 26, 54]
[1, 24, 34, 40, 47, 51]
[1, 23, 24, 30, 33, 50]

, поэтому у меня будет

[0, 2, 4, 10, 26, 54]
[0, 12, 14, 20, 28, 42]
[1, 23, 24, 30, 33, 50]
[1, 24, 34, 40, 47, 51]
[10, 2, 4, 10, 23, 56]

Я в порядке для сортировки отдельных записей.
Но, глядя на 500 записей, для сортировки записей по первому столбцу я использовал arr.sort { $0[0] < $1[0] }.который работал нормально, мне нужно расширить это до столбцов 2,3,4,5,6.Я хочу иметь возможность сортировать по столбцу 1, затем по 2, по 3, по 4, по 5, по 6.

1 Ответ

0 голосов
/ 26 апреля 2018

Предполагая, что все подмассивы содержат 6 элементов, вы можете использовать кортеж (который соответствует Comparable to arity of 6) для сортировки массива:

let array = [[10, 2, 4, 10, 23, 56],
             [0, 12, 14, 20, 28, 42],
             [0, 2, 4, 10, 26, 54],
             [1, 24, 34, 40, 47, 51],
             [1, 23, 24, 30, 33, 50]]

let sorted = array.sorted(by: {
     ($0[0],$0[1],$0[2],$0[3],$0[4],$0[5]) < ($1[0],$1[1],$1[2],$1[3],$1[4],$1[5])
})
print(sorted) // [[0, 2, 4, 10, 26, 54], [0, 12, 14, 20, 28, 42], [1, 23, 24, 30, 33, 50], [1, 24, 34, 40, 47, 51], [10, 2, 4, 10, 23, 56]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...