2014-02-06 2 views
4

когда мы пытаемся разобраться массив чисел люди говорят, что использовать этотОбъясните, почему Закон о Array.sort таким образом

var numbers = [4, 2, 5, 1, 3]; 
numbers.sort(function(a, b) { 
    debugger; 
    return (a > b) ? (1) : (-1); 
}); 
debugger; 
print(numbers); 

если мы наблюдали параметр а, б, в режиме отладчика мы видим следующее

4,2 
4,5 
1,3 
5,1 
2,1 
2,3 
4,3 

Мне нужно знать или объяснять, как функция сортировки работает изнутри, чтобы дать мне этот параметр ??? или мне нужно, чтобы кто-то объяснил, что происходит?

+3

Зачем вам это нужно? Точная последовательность вызовов компаратора несущественна и ненадежна. – user2357112

+2

Лично я считаю, что это одна из вещей, где я DGAF, как это работает XD –

+4

проверить это http://stackoverflow.com/questions/234683/javascript-array-sort-implementation – developerCK

ответ

0

Я использую это:

var num = [4,2,5,1,3]; 
num.sort(function(a,b){return a-b;}); 
+0

его почти то же самое вы только что добавили случай, когда результат может быть нулевым, и в этом случае никакого рода не произойдет, и это не ответ на мой вопрос – Marwan

+0

Но это лучше ...:) Хорошо, вот способ WebKit сделать это, если вам действительно все равно. Но, вероятно, нет веских оснований для изучения родного кода, кроме простого любопытства. https://gist.github.com/Pewpewarrows/964673 – ElDoRado1239

+0

да, я знаю и спасибо за ссылку :) – Marwan

Смежные вопросы