Сортировка много мерного массива по различным полям
Всем привет.
Есть массив массивов дат, строк и чисел мне его нужно отсортировать по различным полям по возрастанию или по убыванию в зависимости от действий пользователя массив примерно такой 5 2015-03-18 09:53:33 Вася 1 2015-03-21 17:30:00 Петя 9 2015-03-18 15:57:33 Вася 7 2015-03-19 18:53:16 Вася 8 2015-03-18 09:16:00 Петя 3 2015-03-19 18:53:04 Петя 4 2015-03-18 16:00:40 Вася 5 2015-03-18 16:01:46 Петя 6 2015-03-18 16:48:52 Игорь 10 2015-03-21 10:52:41 Юра |
|
Сделал может кому пригодится
// Функции сортировки по id
function sIdAsc(a, b) {
if (a[0] > b[0]) return 1;
else if (a[0] < b[0]) return -1; else return 0;
}
function sIdDesc(a, b) {
if (a[0] < b[0]) return 1;
else if (a[0] > b[0]) return -1; else return 0;
}
// Функции сортировки по дате
function sDateAsc(a, b) {
if (a[1] > b[1]) return 1;
else if (a[1] < b[1]) return -1;
else return 0;
}
function sDateDesc(a, b) {
if (a[1] < b[1]) return 1;
else if (a[1] > b[1]) return -1;
else return 0;
}
// Функции сортировки по имени
function sNameAsc(a, b) {
if (a[2] > b[2]) return 1;
else if (a[2] < b[2]) return -1;
else return 0;
}
function sNameDesc(a, b) {
if (a[2] < b[2]) return 1;
else if (a[2] > b[2]) return -1;
else return 0;
}
console.log('Фильт по id убывание');
sorting.sort(sIdAsc);
console.log(sorting.join('\n'));
console.log('Фильт по Date убывание');
sorting.sort(sDateAsc);
console.log(sorting.join('\n'));
console.log('Фильт по Name убывание');
sorting.sort(sNameAsc);
console.log(sorting.join('\n'));
console.log('Фильт по id возрастание');
sorting.sort(sIdDesc);
console.log(sorting.join('\n'));
console.log('Фильт по Date возрастание');
sorting.sort(sDateDesc);
console.log(sorting.join('\n'));
console.log('Фильт по Name возрастание');
sorting.sort(sNameDesc);
console.log(sorting.join('\n'));
console.log('------------------------');
То что имеем на выходе Изначальный массив 53,2015-03-18 09:53:33,Super User 63,2015-03-21 17:30:00,Super User 53,2015-03-18 09:53:33,Super User 62,2015-03-21 10:52:41,test 56,2015-03-18 15:57:33,Super User 61,2015-03-19 18:53:16,Super User 51,2015-03-18 09:16:00,Super User 60,2015-03-19 18:53:04,Super User 57,2015-03-18 16:00:40,Super User 58,2015-03-18 16:01:46,Super User 59,2015-03-18 16:48:52,Super User Фильт по id убывание 51,2015-03-18 09:16:00,Super User 53,2015-03-18 09:53:33,Super User 53,2015-03-18 09:53:33,Super User 56,2015-03-18 15:57:33,Super User 57,2015-03-18 16:00:40,Super User 58,2015-03-18 16:01:46,Super User 59,2015-03-18 16:48:52,Super User 60,2015-03-19 18:53:04,Super User 61,2015-03-19 18:53:16,Super User 62,2015-03-21 10:52:41,test 63,2015-03-21 17:30:00,Super User Фильт по Date убывание 51,2015-03-18 09:16:00,Super User 53,2015-03-18 09:53:33,Super User 53,2015-03-18 09:53:33,Super User 56,2015-03-18 15:57:33,Super User 57,2015-03-18 16:00:40,Super User 58,2015-03-18 16:01:46,Super User 59,2015-03-18 16:48:52,Super User 60,2015-03-19 18:53:04,Super User 61,2015-03-19 18:53:16,Super User 62,2015-03-21 10:52:41,test 63,2015-03-21 17:30:00,Super User Фильт по Name убывание 58,2015-03-18 16:01:46,Super User 51,2015-03-18 09:16:00,Super User 53,2015-03-18 09:53:33,Super User 56,2015-03-18 15:57:33,Super User 57,2015-03-18 16:00:40,Super User 53,2015-03-18 09:53:33,Super User 59,2015-03-18 16:48:52,Super User 60,2015-03-19 18:53:04,Super User 61,2015-03-19 18:53:16,Super User 63,2015-03-21 17:30:00,Super User 62,2015-03-21 10:52:41,test Фильт по id возрастание 63,2015-03-21 17:30:00,Super User 62,2015-03-21 10:52:41,test 61,2015-03-19 18:53:16,Super User 60,2015-03-19 18:53:04,Super User 59,2015-03-18 16:48:52,Super User 58,2015-03-18 16:01:46,Super User 57,2015-03-18 16:00:40,Super User 56,2015-03-18 15:57:33,Super User 53,2015-03-18 09:53:33,Super User 53,2015-03-18 09:53:33,Super User 51,2015-03-18 09:16:00,Super User Фильт по Date возрастание 63,2015-03-21 17:30:00,Super User 62,2015-03-21 10:52:41,test 61,2015-03-19 18:53:16,Super User 60,2015-03-19 18:53:04,Super User 59,2015-03-18 16:48:52,Super User 58,2015-03-18 16:01:46,Super User 57,2015-03-18 16:00:40,Super User 56,2015-03-18 15:57:33,Super User 53,2015-03-18 09:53:33,Super User 53,2015-03-18 09:53:33,Super User 51,2015-03-18 09:16:00,Super User Фильт по Name возрастание 62,2015-03-21 10:52:41,test 58,2015-03-18 16:01:46,Super User 61,2015-03-19 18:53:16,Super User 60,2015-03-19 18:53:04,Super User 59,2015-03-18 16:48:52,Super User 63,2015-03-21 17:30:00,Super User 57,2015-03-18 16:00:40,Super User 56,2015-03-18 15:57:33,Super User 53,2015-03-18 09:53:33,Super User 53,2015-03-18 09:53:33,Super User 51,2015-03-18 09:16:00,Super User ------------------------ |
Telnet,
чем решение по ссылке во втором посте не понравилось? |
Telnet,
заменил массив в примере на ваш смотреть тамже http://javascript.ru/forum/misc/3528...tml#post231976 |
| Часовой пояс GMT +3, время: 17:59. |