var myarray=[25, 8, 7, 41]
myarray.sort(function(a,b){return a - b}) //Array now becomes [7, 8, 25, 41]
просто изменить что
var myarray=[25, 8, 7, 41]
myarray.sort(function(a,b){console.log("comparing " + a + ", " + b);return a - b}) //Array now becomes [7, 8, 25, 41]
после попытки выше код в консоли журнала вы увидите следующий результат
var myarray=[25, 8, 7, 41]
myarray.sort(function(a,b){console.log("comparing " + a + ", " + b);return a - b}) //Array now becomes [7, 8, 25, 41]
İŞ инте Поднял ли он, что он восходит? Он должен быть разделен на три случая: < 0, == 0 и> 0; но как это имеет смысл, когда a и b могут быть чем угодно?
ПЕРВОЕ СРАВНЕНИЕ: 25,8
Теперь, позволяет ответить на ваши сомнения о том, как он выбирает значение а, б.Когда вы запускаете код, вы видите, что первое сравнение производится между 25,8, и если результат положительный, это означает, что 8 меньше. Так что это просто переупорядочивает его до 8, 25.
ВТОРОГО СРАВНЕНИЕ: 25,7
Следующей сравнение между 25, 7 и это потому, что, если результат отрицательный, то третье число будет поставлено после 25 и сортировка трех чисел будет выполнена.
Но дело в другом, теперь в результате снова появляется положительное. Массив все же повторно заказывается до
После этого он снова выполняет тест, пока не обнаружит, что условие положительное. Итак, теперь он сравнивает 8, 7, и результат снова отрицательный.
Массив снова переупорядочиваем себя к
7, 8, 25
ТРЕТИЙ СРАВНЕНИЯ: 25, 41
Теперь, в последнем сравнении, результат получается положительным, что означает, что 41 больше, чем 25 .
поэтому массив перестраивает себя
7,8,25,41
duplicate: http: //stackoverflow.com/questions/1494713/how-does-javascripts-sort-work – alishaukat