<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        JS中使用sort結(jié)合localeCompare實(shí)現(xiàn)中文排序?qū)嵗齙javascript技巧

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:25:33
        文檔

        JS中使用sort結(jié)合localeCompare實(shí)現(xiàn)中文排序?qū)嵗齙javascript技巧

        JS中使用sort結(jié)合localeCompare實(shí)現(xiàn)中文排序?qū)嵗齙javascript技巧:說(shuō)到表格排序,首先要說(shuō)的就一定是數(shù)組的排序,因?yàn)閿?shù)組排序是表格排序的基礎(chǔ)。 JavaScript為數(shù)組提供了sort()方法用于表格排序,默認(rèn)情況下該方法會(huì)使Array中的數(shù)組按照ASCII碼的順序進(jìn)行排列,JavaScript還為數(shù)組提供了數(shù)組倒序的方法reverse()。
        推薦度:
        導(dǎo)讀JS中使用sort結(jié)合localeCompare實(shí)現(xiàn)中文排序?qū)嵗齙javascript技巧:說(shuō)到表格排序,首先要說(shuō)的就一定是數(shù)組的排序,因?yàn)閿?shù)組排序是表格排序的基礎(chǔ)。 JavaScript為數(shù)組提供了sort()方法用于表格排序,默認(rèn)情況下該方法會(huì)使Array中的數(shù)組按照ASCII碼的順序進(jìn)行排列,JavaScript還為數(shù)組提供了數(shù)組倒序的方法reverse()。

        說(shuō)到表格排序,首先要說(shuō)的就一定是數(shù)組的排序,因?yàn)閿?shù)組排序是表格排序的基礎(chǔ)。

        JavaScript為數(shù)組提供了sort()方法用于表格排序,默認(rèn)情況下該方法會(huì)使Array中的數(shù)組按照ASCII碼的順序進(jìn)行排列,JavaScript還為數(shù)組提供了數(shù)組倒序的方法reverse()。

        看一下示例:
        代碼如下:
        function sortArray(){
        var arrayTest = ["z",5,2,"a",32,3];
        arrayTest.sort();
        alert(arrayTest.toString()); //output:2,3,32,5,a,z
        arrayTest.reverse();
        alert(arrayTest.toString()); //output:z,a,5,32,3,2
        }
        sortArray();


        呵呵,5比32還要大,很明顯這不是我們想要的結(jié)果,剛才已經(jīng)說(shuō)過(guò)sort()方法是按照ASCII碼的順序排序的。

        其實(shí)sort()方法還允許帶一個(gè)函數(shù)類型的的參數(shù),我們可以稱之為比較函數(shù),當(dāng)該比較函數(shù)又可以接收兩個(gè)參數(shù),以下該函數(shù)返回值的意義:
        代碼如下:
        -1:第一個(gè)參數(shù) 小于 第二個(gè)參數(shù)
        0:第一個(gè)參數(shù) 等于 第二個(gè)參數(shù)
        1:第一個(gè)參數(shù) 大于 第二個(gè)參數(shù)

        代碼如下:
        /**
        * 比較函數(shù)
        * @param {Object} param1 要比較的參數(shù)1
        * @param {Object} param2 要比較的參數(shù)2
        * @return {Number} 如果param1 > param2 返回 1
        * 如果param1 == param2 返回 0
        * 如果param1 < param2 返回 -1
        */
        function compareFunc(param1,param2){
        //如果兩個(gè)參數(shù)均為字符串類型
        if(typeof param1 == "string" && typeof param2 == "string"){
        return param1.localeCompare(param2);
        }
        //如果參數(shù)1為數(shù)字,參數(shù)2為字符串
        if(typeof param1 == "number" && typeof param2 == "string"){
        return -1;
        }
        //如果參數(shù)1為字符串,參數(shù)2為數(shù)字
        if(typeof param1 == "string" && typeof param2 == "number"){
        return 1;
        }
        //如果兩個(gè)參數(shù)均為數(shù)字
        if(typeof param1 == "number" && typeof param2 == "number"){
        if(param1 > param2) return 1;
        if(param1 == param2) return 0;
        if(param1 < param2) return -1;
        }
        }

        當(dāng)我們執(zhí)行arrayTest.sort(compareFunc)時(shí)我們就得到了正確的結(jié)果。
        到這里,我們不得不說(shuō)明一下localeCompare()方法的用法,該方法是對(duì)字符串進(jìn)行排序的方法,只有一個(gè)參數(shù)即要比較的字符串。

        具體說(shuō)明如下:

        1、如果String對(duì)象按照字母順序排在參數(shù)中的字符串之前,返回負(fù)數(shù)
        2、如果String對(duì)象按照字符順序排在參數(shù)中的字符串之后,返回正數(shù)
        3、如果String對(duì)象等于參數(shù)中的字符串返回0

        除此之外,localeCompare()方法還有一個(gè)獨(dú)特之處,這個(gè)獨(dú)特之處可以在其方法簽名locale(現(xiàn)場(chǎng)、當(dāng)?shù)?上得以體現(xiàn),也就是說(shuō)他的實(shí)現(xiàn)時(shí)按照區(qū)域特性來(lái)的,如果在英語(yǔ)體系中,他的實(shí)現(xiàn)可能是按照字符串升序,如果在漢語(yǔ)中,他的實(shí)現(xiàn)則是按照首字母的拼音。

        呵呵,這也就是說(shuō)就算我們?cè)诔绦蛑猩婕皾h字,我們的排序也不回出錯(cuò)。
        參考以下程序:
        代碼如下:
        var testArray = ["腳","本","之","家"];
        document.write(testArray.sort(
        function compareFunction(param1,param2){
        return param1.localeCompare(param2); //output:之,家,本,腳
        }
        ));

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JS中使用sort結(jié)合localeCompare實(shí)現(xiàn)中文排序?qū)嵗齙javascript技巧

        JS中使用sort結(jié)合localeCompare實(shí)現(xiàn)中文排序?qū)嵗齙javascript技巧:說(shuō)到表格排序,首先要說(shuō)的就一定是數(shù)組的排序,因?yàn)閿?shù)組排序是表格排序的基礎(chǔ)。 JavaScript為數(shù)組提供了sort()方法用于表格排序,默認(rèn)情況下該方法會(huì)使Array中的數(shù)組按照ASCII碼的順序進(jìn)行排列,JavaScript還為數(shù)組提供了數(shù)組倒序的方法reverse()。
        推薦度:
        標(biāo)簽: 排序 示例 javascript
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久草免费在线观看视频| 免费看AV毛片一区二区三区| 精品国产污污免费网站入口在线| a级黄色毛片免费播放视频| 最近中文字幕无免费| 四虎影视永久免费观看地址 | 毛片免费在线视频| 亚洲国产成人久久一区WWW| 久久久亚洲欧洲日产国码aⅴ| 日本亚洲欧美色视频在线播放| 男人的天堂网免费网站| 国产中文字幕免费| 免费人成视频在线播放| 成年黄网站色大免费全看| 亚洲综合久久一本伊伊区| 日本道免费精品一区二区| 日日夜夜精品免费视频| 亚洲欧洲日产国码www| 免费av一区二区三区| 久久久久亚洲AV无码专区网站 | 毛片亚洲AV无码精品国产午夜| 国产乱子精品免费视观看片| 亚洲mv国产精品mv日本mv| 久久久久国色av免费看| 亚洲色欲色欲www在线丝 | 亚洲AV午夜成人影院老师机影院| 在线看亚洲十八禁网站| 嫩草视频在线免费观看| 67194在线午夜亚洲| 四虎永久成人免费| 国产免费网站看v片在线| 亚洲网站在线播放| 中国人xxxxx69免费视频| 亚洲国产综合专区电影在线| 国产色无码精品视频免费| 亚洲成人黄色在线| 免费一级大黄特色大片| 黄色免费网站在线看| 亚洲av无码不卡私人影院| 大地资源网高清在线观看免费| 亚洲人成影院午夜网站|