所以我明白,給定一個數組,您可以使用自定義比較函數對其進行排序。使用比較函數排序
因此,像在Javascript以下內容:
var arr = [5,4,3,6,7,2];
arr.sort(function(a,b){
if (a < b)
return -1;
else if (a > b)
return 1;
else
return 0;
});
所以,我的朋友說,我並不需要返回0排序列表中的這個場景。此外,他說我們可以從[true,false]
返回,而不是從[-1,0,1]
返回。真的嗎? 我試圖找到他的主張的反例,但我不能。我無法想象使用他的代碼不能正確排序數組的情況。
這裏的例子,我的朋友給:
var arr = [5, 4, 3, 6, 7, 2];
arr.sort(function(a, b) {
return a > b;
});
它是很好的做法,從一系列的[-1,0,1]
回報?什麼是整數可比較的必要性?我注意到,這是跨越多種編程語言的情況,而不僅僅是JavaScript。像C中的這個例子一樣。
'});'(兩次!)看起來不對。 – wildplasser
根據文檔,你的朋友是錯的。請參閱https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort – Phil
請注意,它們不一定只是'[-1,0,1]',它們可以是任何負值,0或任何正值。這允許你做'返回a - b;'。 – Barmar