Сортировка массива по 4 размерностям

Полезные скрипты
Ответить
Аватара пользователя
mihas
Администратор
Сообщения: 1368
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Сортировка массива по 4 размерностям

Сообщение mihas »

Некоторое время ломал голову, как бы красиво отсортировать массив по 4 размерностям разом, на помощь пришел мой коллега Федор Одинцов, вот его лаконичный код многомерной сортировки. Кол-во размерностей сортировки исходя из этой идеи можно и нарастить спокойно! Поменять местами a и b в аргументах функции - и сортировка пойдет в обратном порядке. Иными словами круто, в сети подобного не нашел, пусть тут будет:

Код: Выделить всё

function Sort_an_array_by_4_dimensions(first, second, third, forth) {
	return function(a, b) {
		if (a[first] === b[first]) {
			if (a[second] === b[second]){
				if (a[third] === b[third]){
					return a[forth] - b[forth];
				} else {
					return a[third] - b[third];
				}
			} else {
				return a[second] - b[second];
			}
		} else {
			return a[first] - b[first];
		}
	}
}
Образец работы функции на реальном примере массива в 1588 полей по ссылке.
Простой переводчик таблиц Excel в массивы яваскрипт по ссылке.
Смена колонок таблицы на строки таблицы (поворот) по ссылке.
Ответить

Вернуться в «JavaScript»