亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

該節sort函數描述是否有錯?

該節描述說sort函數返回值是以-1和1作為分界點判斷A,B是否需要交換位置。可是示例代碼中的return a - b; 顯然是根據0作為分界點。

然后查了w3school發現以下描述:

若 a 小于 b,在排序后的數組中 a 應該出現在 b 之前,則返回一個小于 0 的值。

若 a 等于 b,則返回 0。

若 a 大于 b,則返回一個大于 0 的值。

http://www.w3school.com.cn/jsref/jsref_sort.asp

所以該節sort函數描述是否有誤?

正在回答

8 回答

應該以w3c為準

0 回復 有任何疑惑可以回復我~

數組內的元素有數組和字母兩種情,下面這個例子是當要比較的對象是兩種情況的任意一種時的寫法:


<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>無標題文檔</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>


0 回復 有任何疑惑可以回復我~

這句話也很重要:如果此方法沒有參數,那就會將數組中的元素嘗試轉換成字符串,然后比較字符串中每個字符的ASCII碼的大小,較小的的字符串在前面。

0 回復 有任何疑惑可以回復我~

慕課網的寫法是有些問題的,大家看看這里面的解釋吧

http://www.softwhy.com/forum.php?mod=viewthread&tid=8360

0 回復 有任何疑惑可以回復我~

前面已經說了有參數函數的,若 a 小于 b,在排序后的數組中 a 應該出現在 b 之前,則返回一個小于 0 的值。若 a 等于 b,則返回 0。若 a 大于 b,則返回一個大于 0 的值。如果你直接對字符進行運算符運算,會返回什么結果? NaN.所以不符合結果。這樣排序就沒有什么用。
所以說要根據sort函數的返回值進行改寫.

[JavaScript]?純文本查看?復制代碼運行代碼

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;}}));

? ?


0 回復 有任何疑惑可以回復我~

描述不準確

應該是大于0,小于0,和等于0三種情況

0 回復 有任何疑惑可以回復我~

如果是字母的話,會按照字母順序進行排序。

0 回復 有任何疑惑可以回復我~
#1

Maxmengt 提問者

不好意思,這好像跟我問的沒什么關系。
2016-03-31 回復 有任何疑惑可以回復我~
#2

慕UI9843876 回復 Maxmengt 提問者

若 a 小于 b,在排序后的數組中 a 應該出現在 b 之前,則返回一個小于 0 的值。若 a 等于 b,則返回 0。若 a 大于 b,則返回一個大于 0 的值。如果你直接對字符進行運算符運算,會返回什么結果? NaN.所以不符合結果。這樣排序就沒有什么用。
2016-06-08 回復 有任何疑惑可以回復我~

沒錯? 0的話a=b,<=-1說明a<b , >=1說明a>b。

0 回復 有任何疑惑可以回復我~
#1

Maxmengt 提問者

這是建立在a,b都為整數的情況吧。
2016-03-31 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468829    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

該節sort函數描述是否有錯?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號