JavaScript中怎么對(duì)多維數(shù)組多鍵值進(jìn)行排序,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
德保網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,德保網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為德保上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的德保做網(wǎng)站的公司定做!
JavaScript實(shí)現(xiàn)多維數(shù)組多鍵值排序方法
JavaScript的數(shù)組排序函數(shù)sort方法,默認(rèn)是按照ASCII字符順序進(jìn)行升序排列。
arrayobj.sort(sortfunction);
參數(shù):sortFunction
可選項(xiàng)。是用來確定元素順序的函數(shù)的名稱。如果這個(gè)參數(shù)被省略,那么元素將按照ASCII字符順序進(jìn)行升序排列。
sort方法將Array對(duì)象進(jìn)行適當(dāng)?shù)呐判?;在?zhí)行過程中并不會(huì)創(chuàng)建新的Array對(duì)象。
如果為sortfunction參數(shù)提供了一個(gè)函數(shù),那么該函數(shù)必須返回下列值之一:
負(fù)值,如果所傳遞的***個(gè)參數(shù)比第二個(gè)參數(shù)小。
零,如果兩個(gè)參數(shù)相等。
正值,如果***個(gè)參數(shù)比第二個(gè)參數(shù)大。
以上的方法在一維的排序還是很方便的,但像SQL語句中的ORDERBY一樣的多鍵值排序由怎么做呢?
多維數(shù)組的多鍵值排序,則需要復(fù)雜一些,但不需要用循環(huán)解決。實(shí)際解決的道理是一樣的。
數(shù)字:
以下的例子是將數(shù)字的多維數(shù)組按照第5列,第9列,第3列的順序排序,像SQL語句中的ORDERBYcol5,col9,col7。數(shù)字的時(shí)候可以直接兩個(gè)項(xiàng)目相減,以結(jié)果作為返回值即可。
<scriptlanguagescriptlanguage=javascript> varmyArray=newArray(); for(vari=0;i<10;i++)...{ myArray[i]=newArray(); myArray[i][0]=Math.floor(Math.random()*10); myArray[i][1]=Math.floor(Math.random()*10); myArray[i][2]=Math.floor(Math.random()*10); myArray[i][3]=Math.floor(Math.random()*10); myArray[i][4]=Math.floor(Math.random()*10); myArray[i][5]=Math.floor(Math.random()*10); myArray[i][6]=Math.floor(Math.random()*10); myArray[i][7]=Math.floor(Math.random()*10); myArray[i][8]=Math.floor(Math.random()*10); } myArray.sort(function(x,y)...{ return(x[0]==y[0])?((x[4]==y[4])?(x[8]-y[8]):(x[4]-y[4])):(x[2]-y[2]) }); for(vari=0;i<myArray.length;i++)...{ document.write(myArray[i].join(",")+"<br/>"); } </script>
字符:
字符的時(shí)候sortFunction中的項(xiàng)目不能像數(shù)字一樣直接相減,需要調(diào)用
str1.localeCompare(str2)方法來作比較,從而滿足返回值。以下是多維數(shù)組的第1,2列作排序的情況。
functionsortFunction(array)...{ returnarray.sort(function(x,y)...{ return(x[0]==y[0])?(x[1].localeCompare(y[1])):(x[0].localeCompare(y[0])) }); }
因此arrayObject.sort(sortFunction)的排序功能還是很強(qiáng)大的,終于能夠?qū)崿F(xiàn)了SQL語句中的ORDERBY一樣的功能。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
網(wǎng)站名稱:JavaScript中怎么對(duì)多維數(shù)組多鍵值進(jìn)行排序
文章鏈接:http://jinyejixie.com/article38/peoosp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站收錄、網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、用戶體驗(yàn)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)