Недавно проблема сортировки JS заключается в том, что сортировка базы данных слишком потребляет ресурсы. В клиенте, кроме JS, это так же, как. Сущность Сущность После моего теста, встроенный JS -в сортировке методов очень эффективен
Мы знаем, что функция сортировки предоставляется по умолчанию в JS, но эта функция расположена в соответствии с кодами ASCII содержимого массива. В PHP есть функция Multi_sort, чтобы назвать ее, но, похоже, в JS нет такой функции, но это не имеет значения, поскольку функция вида JS также предоставляет параметры, которые могут определить функцию сравнения для двухмерных массивов.
1. Сортировать по численному значению
Предполагая следующее массив
Код кода копирования следующим образом:
var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]];
Что мы делаем, если мы хотим сортировать первый столбец каждого подзадачи? Мы можем определить функцию сравнения:
Код кода копирования следующим образом:
Arr.sort (function (x, y) {
Вернуть x [0] y [0];
});
Какова роль функции сравнения здесь? Фактически, массив скопирован на x, y, в свою очередь, например, сначала назначьте Arr [0] на x, arr [1] к Y, а затем используйте x [0] y [0] для возврата в соответствии с возвращаемое значение. И затем первые два отсортированы. Это сравнение функции последовательности по умолчанию. Сортируется в первом столбце. Сортировка здесь изменит структуру массива ARR, поэтому сортировка ARR - это массив, который продвигается в соответствии с первым столбцом.
2. Сортировать по строке
Если вы отсортированы по строке, мы можем использовать метод LocalEcompare, предоставленный JS,
LocalEcompare: сравните две строки в определенном порядке.
Правила использования метода LocalEcompare являются StringObject.LocaleCompare (Target). Если StringObject больше цели, метод возвращает число больше 0. Если две строки равны или нет разницы в соответствии с локальными правилами сортировки, этот метод возвращает 0. Устройство сравнивается с локальными правилами. Операционная система.
например
Код кода копирования следующим образом:
var arr = [['Middle', 'country'], ['ah', ''], ['oh', '', '];
Arr.sort (function (x, y) {
Вернуть x [0] .localeCompare (y [0]);
});
В результате он будет отсортирован в пинеине первого столбца китайских иероглиф строки сортируется, в том числе китайский и китайско -брит -смешанный ряд. Что касается порядка упорядочения, метод такой же, как и выше, и метод изменяется на возврат y [0] .localeCompare (x [0]);
Таким образом, проблема сортировки реализована, и есть еще много мест для JS -двухмерных массивов. Надеюсь помочь некоторым людям
Код кода копирования следующим образом:
Функция tblsort (s) {
for (r = 0; r <right_len; r ++) {
arrs [r] = []
for (c = 0; c <cel_len; c ++) {
Arrrs [r] [c] = {} // Создание другого объекта в двух -размерном массиве;
Arrs [r] [c] .html = table.rows [r] .cells [c] .innerhtml // Поместите таблицу HTML в связанный массив и отображается на странице после сортировки;
var text = table.rows [r] .cells [c] .innerText // Получить текстовое содержание формы для следующих суждений;
// обнаружение, которое может показаться отрицательным, если данные не являются нормальными, ранжируя в конце;
if (text == '-') {{
arrs [r] [c] .Text = '-1';
} else if (text == 'reintegle') {{
arrs [r] [c] .Text = '-2';
} else if (text == 'no baidu snapshot' || text == 'Нет данных о ранжировании') {
arrs [r] [c] .text = '-3'
} else if (text == '') {
arrs [r] [c] .text = '-4'
} Еще {
arrs [r] [c] .text = table.rows [r] .cells [c] .innertext // Поместите содержимое текста в таблице в связанный массив. Для сортировки ниже для сортировки.
}
}
}
// предупреждение (arrs [0] [0] ['text'])
// Рейве суждение в настоящее время отсортируется или девственница;
if (reve) {
arrs.sort (function (x, y) {
Вернуть parsefloat (y [s] ['text']) -parsefloat (x [s] ['text'])
});
Reve = 0
} Еще {
arrs.sort (function (x, y) {
Вернуть parsefloat (x [s] ['text']) -parsefloat (y [s] ['text']) //
})
Reve = 1
}
// Поместите гребленный контент HTML в форме
for (r = 0; r <right_len; r ++) {
for (c = 0; c <cel_len; c ++) {
table.rows [r] .cells [c] .innerhtml = arrs [r] [c] ['html']]
}
}
}
// заканчивается сортировкой таблицы