Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   javascript сортировка option и value по алфавиту (https://javascript.ru/forum/dom-window/74169-javascript-sortirovka-option-i-value-po-alfavitu.html)

j0hnik 19.06.2018 18:29

рони,
спасибо, вник в суть, к массивам больше 10 ячеек v8 применяет какую-то оптимизацию.

рони 19.06.2018 18:35

j0hnik,
да, да наплевать на документацию, это Google Chrome и Internet Explorer плохие, раз придерживаются правил )))

j0hnik 19.06.2018 18:46

рони,
IE придерживается и даж поддержка новых стандартов появляется спустя 3-4 года, а так да, хороший арбуз!

рони 19.06.2018 18:51

j0hnik,
c return -1 работает везде
<script>
var str = "12345678901234567890";
for (var i = 0; i < 50; i++) {
document.write("<br>"+str.split("").sort(function() {
   return Math.random() > 0.5
}).sort(function(a,b) {
   return a > b ? 1 : a < b ? -1 : 0
})) //ожидаемый результат 0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9

}

  </script>

j0hnik 19.06.2018 18:52

рони, да знаю

рони 19.06.2018 18:54

:write: :) или так
<script>
var str = "12345678901234567890";
for (var i = 0; i < 50; i++) {
document.write("<br>"+str.split("").sort(function() {
   return Math.random() > 0.5
}).sort(function(a,b) {
   return a > b || -(a < b)
})) //ожидаемый результат 0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9

}

  </script>

Manyasha 19.06.2018 19:16

рони,
а почему бы не так тогда (7-я строка)?))
return a > b || -1

рони 19.06.2018 19:17

:lol: или так

<script>
var str = "12345678901234567890";
for (var i = 0; i < 50; i++) {
document.write("<br>"+str.split("").sort(function() {
   return Math.random() > 0.5
}).sort(function(a,b) {
   return a.localeCompare(b,"ru")
})) //ожидаемый результат 0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9

}

  </script>

рони 19.06.2018 19:18

Цитата:

Сообщение от Manyasha
return a > b || -1

как вернуть ноль?

Manyasha 19.06.2018 19:19

а зачем? Поменяются местами 5 и 5, это же не ошибка


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