Предположим, у меня есть массив опций для сортировки по нескольким оценкам, и эти оценки представляют собой массив переменной длины
[
#[Label, scores]
["Label6", [1]
["Label5", [1,5]
["Label2", [0,1,3,5],
["Label1", [0,1,2]
["Label3", [0,1,4],
["Label4", [1,4]
]
Я хочу отсортировать этот список, оценивая элементы массива один за другим. IE. Сначала я отсортирую (по возрастанию) по score[0]
, затем score[i+1]
, если он существует, и т. Д. Когда score[i]
не существует, его следует рассматривать как бесконечное значение (отображается внизу)
Это может дать следующий вывод на предыдущих данных:
list = [
#[Label, scores]
["Label1", [0,1,2]
["Label2", [0,1,3,5],
["Label3", [0,1,4],
["Label4", [1,4]
["Label5", [1,5]
["Label6", [1]
]
Как я могу написать эту функцию? Есть ли нативная / ES6 (или lodash / underscore) функция sortBy()
, как у нас на других языках? (например, в Ruby вы бы просто list.sort_by(&:last)
получили этот эффект). Или это нужно реализовывать вручную?