該節(jié)sort函數(shù)描述是否有錯?
該節(jié)描述說sort函數(shù)返回值是以-1和1作為分界點(diǎn)判斷A,B是否需要交換位置??墒鞘纠a中的return a - b; 顯然是根據(jù)0作為分界點(diǎn)。
然后查了w3school發(fā)現(xiàn)以下描述:
若 a 小于 b,在排序后的數(shù)組中 a 應(yīng)該出現(xiàn)在 b 之前,則返回一個小于 0 的值。
若 a 等于 b,則返回 0。
若 a 大于 b,則返回一個大于 0 的值。
http://www.w3school.com.cn/jsref/jsref_sort.asp
所以該節(jié)sort函數(shù)描述是否有誤?
2016-04-02
應(yīng)該以w3c為準(zhǔn)
2016-06-08
數(shù)組內(nèi)的元素有數(shù)組和字母兩種情,下面這個例子是當(dāng)要比較的對象是兩種情況的任意一種時的寫法:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無標(biāo)題文檔</title>
<script>
function compare(a,b){
//升序
/*if(a>b){
return 1;
}
if(a==b){
return 0;
}
if(a<b){
return -1;
}*/
//降序
if(a<b){
return 1;
}
if(a==b){
return 0;
}
if(a>b){
return -1;
}
}
var myArra1=new Array(10,2,3,4,5,6,7,8,9,1);
var myArra2=["g","d","e","h","q","b","c","a","A","D","F"];
var myArra3=["g","d","DB","e","DA","h","AA","q","b","c","a","AB","D","F"];
document.write(myArra1.sort(compare) + "<br/>");?
document.write(myArra2.sort(compare) + "<br/>");?
document.write(myArra3.sort(compare) + "<br/>");?
</script>
</head>
<body>
</body>
</html>
2016-06-08
這句話也很重要:如果此方法沒有參數(shù),那就會將數(shù)組中的元素嘗試轉(zhuǎn)換成字符串,然后比較字符串中每個字符的ASCII碼的大小,較小的的字符串在前面。
2016-06-08
慕課網(wǎng)的寫法是有些問題的,大家看看這里面的解釋吧
http://www.softwhy.com/forum.php?mod=viewthread&tid=8360
2016-06-08
前面已經(jīng)說了有參數(shù)函數(shù)的,若 a 小于 b,在排序后的數(shù)組中 a 應(yīng)該出現(xiàn)在 b 之前,則返回一個小于 0 的值。若 a 等于 b,則返回 0。若 a 大于 b,則返回一個大于 0 的值。如果你直接對字符進(jìn)行運(yùn)算符運(yùn)算,會返回什么結(jié)果? NaN.所以不符合結(jié)果。這樣排序就沒有什么用。
所以說要根據(jù)sort函數(shù)的返回值進(jìn)行改寫.
[JavaScript]?純文本查看?復(fù)制代碼運(yùn)行代碼
console.log(["g","d","e","h","q","b","c","a","A","D","F"].sort(function(a,b){if(a>b){return 1;}if(a==b){return 0;}if(a<b){return -1;}}));
? ?
2016-04-08
描述不準(zhǔn)確
應(yīng)該是大于0,小于0,和等于0三種情況
2016-03-31
如果是字母的話,會按照字母順序進(jìn)行排序。
2016-03-31
沒錯? 0的話a=b,<=-1說明a<b , >=1說明a>b。