Итак, у меня есть массив массивов, который содержит только строки. Массив массивов должен отображаться в виде таблицы и может содержать более 1000 строк с 20 или более значениями в каждом.
например:
var arr = [
    ["bob","12","yes"],
    ["joe","","no"],
    ["tim","19","no"],
    ["dan","","yes"],
    ["tim","",""],
    ["dan","0",""]
]
строки могут содержать все, что может быть представлено в виде строки, включая: " ", "", "0" или "00-00-00" и т.д.... и любой столбец my, который будет использоваться для упорядочения.
Я сортирую массивы по возрастанию и убыванию, но некоторые из значений, которые я сортирую, - это пустые строки: "". Как я могу получить пустые строки (только), чтобы всегда быть в конце новых массивов во всех современных браузерах?
в настоящее время они находятся в конце при восходящем, но в начале при спуске.
Я сортирую, как показано ниже (Да, я уверен, что тоже могу сделать это короче):
if (direction == "asc") {
    SortedArr = arr.sort(function (a, b) {
        if (a[colToSortBy] == '') {
            return -1;
        }
        if (a[colToSortBy].toUpperCase() < b[colToSortBy].toUpperCase()) {
            return -1;
        }
        if (a[colToSortBy].toUpperCase() > b[colToSortBy].toUpperCase()) {
            return 1;
        }
        return 0;
    });
} else {
    SortedArr = arr.sort(function (a, b) {
        if (a[colToSortBy] == '') {
            return -1;
        }
        if (b[colToSortBy].toUpperCase() < a[colToSortBy].toUpperCase()) {
            return -1;
        }
        if (b[colToSortBy].toUpperCase() > a[colToSortBy].toUpperCase()) {
            return 1;
        }
        return 0;
    });
}