Мой javascript / jQuery не очень хорош, но общая техника, которая может быть полезна здесь, - это создание составного ключа сортировки из выбранных столбцов с последующей сортировкой по нему.
Для этого вы определяете максимально возможную длину каждого столбца, дополняете значение в каждом столбце сортировки до максимального значения, а затем объединяете значения в столбцах сортировки, чтобы получить один составной ключ сортировки.
Например, если порядок сортировки - жанр / альбом / исполнитель, а максимальная длина этих полей равна 20/100/100, то для каждой строки составной ключ сортировки равен
pad(genre, 20) + pad(album, 100) + pad(artist, 100)
где pad
- это функция, которая дополняет заданный текст до заданной длины пробелами.
Для заданного набора столбцов сортировки вы можете определить функцию, которая принимает строку в качестве входных данных и возвращает составной ключ сортировки. Затем просто отсортируйте эти (одиночные) значения. Заполнение и объединение гарантируют, что ключ сортировки каждой строки имеет одинаковую длину, и что естественная сортировка строк даст желаемый порядок.