Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не сортирует array.sort() (https://javascript.ru/forum/misc/44088-ne-sortiruet-array-sort.html)

Dorian_bs 06.01.2014 02:16

Не сортирует array.sort()
 
Всем привет!)
Стало необходимым отсортировать по возрастанию/убыванию (не важно) элементы массива.

Код:

array = [213, 432, 1, 43, 115, 23];
array.sort();


Возвращает:

[1, 115, 213, 23, 43, 432]


Так то не по порядку)

Dorian_bs 06.01.2014 02:20

Нашел решение - задать функциональный литерал:
array.sort(function(a,b){return a-b;});

Все работает отлично.

Возможно кто то знает нюансы сортировки и данного метода?
И возможные ошибки?

Vlasenko Fedor 06.01.2014 02:25

array = [213, 432, 1, 43, 115, 23];
array.sort(function(a, b){return a > b;});

melky 06.01.2014 02:37

Цитата:

Сообщение от Poznakomlus (Сообщение 290706)
array = [213, 432, 1, 43, 115, 23];
array.sort(function(a, b){return a > b;});

Цитата:

Array.prototype.sort (comparefn)
...
Если comparefn – не undefined, то эта функция принимает два аргумента, x и y, и возвращает отрицательное значение, если x < y, возвращает ноль, если x = y, и возвращает положительное значение, если x > y.
http://es5.javascript.ru/x15.4.html#x15.4.4.11

Кстати, вы знали?

Chromium, V8:
Код:

2008-10-06: Version 0.3.4
        Changed Array.prototype.sort to use quick sort.



Часовой пояс GMT +3, время: 01:54.