最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

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

sort的排序問題

sort 排序默認(rèn)是升序的,并且 是以字符串的形式升序,如果要以字符串的形式降序呢?怎么做呢?難道只能使用reverse嗎?

正在回答

3 回答

var arr = ['sp', 'bd', 'bc', 'sq', 'nb', 'na'];

document.write(arr + "<br />");

arr.sort(function(a, b){return (a + '').localeCompare(b + '')});

document.write(arr);


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

點燈夜 提問者

解決的很完美,不過應(yīng)該這樣寫return (b + '').localeCompare(a + '');因為要的是降序嘛
2016-06-11 回復(fù) 有任何疑惑可以回復(fù)我~
#2

啊啊啊啊123 回復(fù) 點燈夜 提問者

沒看懂
2016-06-19 回復(fù) 有任何疑惑可以回復(fù)我~

sort需要調(diào)用函數(shù)才能排序,sort(方法函數(shù))如果"()"括號里面沒有方法函數(shù),則數(shù)組元素默認(rèn)unicode這個碼的順序排列。(暫時理解它無序排列吧)

如果sort“()”里面加上方法函數(shù)則按這個方法函數(shù)排序。方法函數(shù)需要自己設(shè)定function(a,b)

function sortNum(a,b) {
??? return b-a;//這是降序(a-b//這是升序)
?? }
var myarr = new Array("80","16","50","6","100","1");
document.write(myarr.sort(sortNum));

注意:?該函數(shù)function(a,b)要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數(shù)字。比較函數(shù)應(yīng)該具有兩個參數(shù) a 和 b,其返回值如下:?

? 若返回值<=-1,則表示 A 在排序后的序列中出現(xiàn)在 B 之前。
? 若返回值>-1 && <1,則表示 A 和 B 具有相同的排序順序。
? 若返回值>=1,則表示 A 在排序后的序列中出現(xiàn)在 B 之后。

(可能這個地方不好理解,把A,B代入就可以了,前面的元素是A,A后面是B)

reverse則是顛倒數(shù)組元素順序.本來是159357,顛倒后是753951。


0 回復(fù) 有任何疑惑可以回復(fù)我~

可以自定義sort()方法,function ?sort(a,b){return b-a;}

舉個例子a=2,b=3返回的如果大于等于1,a和b位置就會互換,就是a,b位置互換,是不是大的在前面,小的就在后面了,也就是降序了。

如果用封裝好的方法reverse()就更省事了呢?


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

點燈夜 提問者

return b-a;這種的話 是把字符串?dāng)?shù)字化后的排序結(jié)果,以字符串方式降序排咧呢
2016-06-11 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
JavaScript進(jìn)階篇
  • 參與學(xué)習(xí)       469022    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進(jìn)入網(wǎng)頁動態(tài)交互世界

進(jìn)入課程

sort的排序問題

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號