Как делать сортировку в Javascript с sort()

Сортировать требуется много разных вещей в повседневной жизни. Это может быть что угодно. Однако, полезнее всего это дело программистам, которые имеют дело с огромным количеством данных. Требуется выбрать признак для сортировки, а также сделать специальный набор команд, который предоставит возможность произвести действие. И о том, как производится сортировка объектов (иначе говоря, массивов) в JavaScript, будет рассказано в данном материале.

Сортировка чисел

Числа – самый простой вариант действий в сортировке. Здесь необходимо лишь указать специальную команду и провести несколько действий, чтобы в конечном итоге пользователь получил полную сортировку всех данных. Для начала необходимо передать функцию sortfuction к array.sort(), а затем возвратить разницу между a и b, оба параметра автоматически отправляются в функцию для дальнейших действий. Выглядит это таким образом:

varmyarray=[25, 8, 7, 41]
myarray.sort(function(a,b){
return a — b
}) //Массив будет [7, 8, 25, 41]

Вот так просто выполняется данная процедура. Здесь выполнен порядок возрастания, то есть, пользователи получат все числа от меньшего к большему. То есть, важно понимать условие, завязанное на a и b.

Кстати говоря, функция сортировки sort() здесь является анонимной. Это сделано для того, чтобы не заморачиваться с созданием отдельной функции и передачи команды туда. А обусловлен такой ход тем, что результат станет одним и тем же – не нужно дополнительно работать, усложняя код.

Сортировка в обратном порядке так же возможна. Здесь необходимо лишь изменить условие действия. А точнее, поставить в обратном порядке a и b. Вот, что должно получиться в консоли после написания кода для сортирования числового массива:

varmyarray=[25, 8, 7, 41]
myarray.sort(function(a,b){
return b — a
}) //Массив становится [41, 25, 8, 7]

Сортировка по возрасту

Следующий, более интересный раздел сортировки – расположение объектов с определенным признаком. У этого признака должно быть значение, как уже понятно многим пользователям. В данном случае, это – возраст. Вместо указанных числовых значений или буквенных, пользователь должен будет вводить целые строки для каждого объекта. Вот, как такое станет выглядеть:

var employees=[]
employees[0]={name: «George», age: 32, retiredate: «March 12, 2014»}
employees[1]={name: «Edward», age: 17, retiredate: «June 2, 2023»}
employees[2]={name: «Christine», age: 58, retiredate: «December 20, 2036»}
employees[3]={name: «Sarah», age: 62, retiredate: «April 30, 2020»}

Все эти объекты (люди) должны быть отсортированы. Здесь почти ничего не меняется из процесса с сортировкой чисел или имен. Единственное, что претерпит изменения – немного измененная структура кода. Но на самом деле, пользователь не испытает сложностей и сможет без особых проблем отсортировать, к примеру, сотрудников на своей работе по возрастанию:

employees.sort(function(a, b){
return a.age-b.age
})

Пользователи, как и в случае с числами или именами, могут также использовать «реверс», чтобы расположить в обратном порядке объекты. Таким образом, если выбрать число, то список начнется с большего показателя и пойдет к меньшему. А если имя человека(к примеру), то первым будет тот, чье имя «Zach», а первым – «Ann». В общем – все просто по сортировке.

Сортировка по имени

Сортировка по буквам – почти то же самое, что и с цифрами. Возможно, здесь даже меньше усилий будет прикладываться. Единственное изменяется в коде на этот раз – переменные, а вернее, их значения. Можно будет вставить вместо чисел после varmyarray свои значения имен, букв и прочего. Вот таким образом выглядит сортировка имен в алфавитном порядке:

varmyarray=[«Bob», «Bully», «Amy»]
myarray.sort() // Массив становится [«Amy», «Bob», «Bully»]

Здесь, опять же, используется стандартный порядок слов. Все обусловлено тем, что обычно язык задействует привычный алфавитный порядок, ввиду чего почти всегда получается такой вариант. Однако, иногда бывает потребность в том, чтобы разместить имена в другом порядке. Благо, так возможно сделать всего лишь с одним маленьким изменением. И изменит код оно таким образом:

varmyarray=[«Bob», «Bully», «Amy»]
myarray.sort()
myarray.reverse() //Массив становится [«Bully», «Bob», «Amy»]

Неизвестно, где это может пригодиться, но такое возможно в языке JavaScript. В большинстве случаев, хватит сортировки по буквам в алфавитном порядке – то есть, программа просто расположит удобно все имена для пользователей. Не нужно будет копаться в списке и ломать голову, какая буква следующая (в общем – для человека процесс будет явно не очень приятным и запутанным).

Если же требуется отсортировать по имени сотрудников компании или кого-то еще, то процесс немного сложнее. Здесь требуется ввести специальный набор команд, который выглядит таким образом:

employees.sort(function(a, b){
varnameA=a.name.toLowerCase(), nameB=b.name.toLowerCase()
if (nameA<nameB) //сортируем строки по возрастанию
return -1
if (nameA>nameB)
return 1
return 0 // Никакой сортировки
})

Опять же, если «поиграть» со значениями, то можно сделать и обратную сортировку имен из представленного списка выше. Однако, требуется чаще всего сортировка по алфавиту, ввиду чего не нужно ничего менять. Это значит, что в качестве готового варианта для большинства случаев возможно использовать данный пример.

Сортировка по дате

Еще один интересный момент, что требуется разобрать пользователям – сортировка объекта по дате. К примеру, если взять список с сотрудниками, то можно сделать сортировку их по выходу на пенсию (уже было указано выше). Здесь необходимо, опять же, использовать другую структуру. А значит, пользователи должны запомнить или же скопировать для образца данный пример:

employees.sort(function(a, b){
vardateA=new Date(a.retiredate), dateB=new Date(b.retiredate)
returndateA-dateB //сортировка по возрастающей дате
})

Сортировка массива в случайном порядке

Что еще рекомендуется запомнить – как производится сортировка массива в случайном порядке. Здесь нет определенного точного ответа, как будут располагаться переменные. То есть, sortfunction станет применять совершенно любое значение при сортировке, чтобы все переменные «мешались», подобно картам в колоде. Делается уже такое по другому алгоритму, и, соответственно, придется изучить процесс выполнения данной программы. Так выглядит код:

varmyarray=[25, 8, «George», «John»]
myarray.sort(function(){
return 0.5 — Math.random()
}) //Теперь элементы перемешаны

Таким образом, открывается для новичков «тайная» сторона команды sort.array(). Значит, у пользователей есть немало возможностей, чтобы в конце концов была произведена совершенно любая сортировка. Она может использоваться, к примеру, в играх или в каких-нибудь развлекательных программах, чтобы можно было угадать, какое число выпадет и так далее. Закономерности здесь никакой нет, как и в реальной жизни, к примеру, с игральными «костями».

Учитывая все эти разделы, где разобраны различные методы сортировки, пользователи смогут применять такую команду почти в любом варианте развития событий. И хоть их всего несколько, но зато выручат они человека почти всегда, когда требуется правильное расположение, ведь решения подходят под много случаев. И не важно – сортировать возраст, количество вещей, имена или что-то другое, так как sort function «многогранна».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *