中文拼音排序一直都是很有趣的一個(gè)問(wèn)題。推薦使用這個(gè)函數(shù) String.prototype.localeCompare(),鏈接 MDN。首先用 localeCompare 試下拼音排序

目前創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、彰武網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
var array = ['武漢', '北京', '上海', '天津'];
array.sort(
function compareFunction(param1, param2) {
return param1.localeCompare(param2);
}
);
array // ["北京", "上海", "天津", "武漢"]
然后根據(jù) 26 個(gè)英文字母分組排序,函數(shù)如下,
function pySegSort(arr) {
if(!String.prototype.localeCompare)
return null;
var letters = "*abcdefghjklmnopqrstwxyz".split('');
var zh = "阿八嚓噠妸發(fā)旮哈譏咔垃痳拏噢妑七呥扨它穵夕丫帀".split('');
var segs = [];
var curr;
letters.forEach(function(item,i){
curr = {letter: item, data:[]};
arr.forEach(function(item2){
if((!zh[i-1] || zh[i-1].localeCompare(item2) = 0) item2.localeCompare(zh[i]) == -1) {
curr.data.push(item2);
}
});
if(curr.data.length) {
segs.push(curr);
curr.data.sort(function(a,b){
return a.localeCompare(b);
});
}
});
return segs;
}
測(cè)試:
pySegSort(["我","不","懂","愛(ài)","啊","按","已","呀","選","縣"])
結(jié)果:
[{"letter":"a","data":["啊","愛(ài)","按"]},{"letter":"b","data":["不"]},{"letter":"d","data":["懂"]},{"letter":"w","data":["我"]},{"letter":"x","data":["縣","選"]},{"letter":"y","data":["呀","已"]}]
var arr = ["張三","李四","王五","阿三"];?
document.write(arr+"");
arr.sort(function(a,b){
return a.localeCompare(b);
});
document.write(arr);
定義和用法:
用本地特定的順序來(lái)比較兩個(gè)字符串。
語(yǔ)法:
stringObject.localeCompare(target)
參數(shù)描述:
target ? ?要以本地特定的順序與 stringObject 進(jìn)行比較的字符串。 ?
返回值:
說(shuō)明比較結(jié)果的數(shù)字。如果 stringObject 小于 target,則 localeCompare() 返回小于 0 的數(shù)。如果 stringObject 大于 target,則該方法返回大于 0 的數(shù)。如果兩個(gè)字符串相等,或根據(jù)本地排序規(guī)則沒(méi)有區(qū)別,該方法返回 0。
說(shuō)明:
把 和 運(yùn)算符應(yīng)用到字符串時(shí),它們只用字符的 Unicode 編碼比較字符串,而不考慮當(dāng)?shù)氐呐判蛞?guī)則。以這種方法生成的順序不一定是正確的。例如,在西班牙語(yǔ)中,其中字符 “ch” 通常作為出現(xiàn)在字母 “c” 和 “d” 之間的字符來(lái)排序。
localeCompare() 方法提供的比較字符串的方法,考慮了默認(rèn)的本地排序規(guī)則。ECMAscript 標(biāo)準(zhǔn)并沒(méi)有規(guī)定如何進(jìn)行本地特定的比較操作,它只規(guī)定該函數(shù)采用底層操作系統(tǒng)提供的排序規(guī)則。
參考資料
百度知道.百度知道[引用時(shí)間2018-1-5]
JavaScript簡(jiǎn)介:
Javacript是一種能讓你的網(wǎng)頁(yè)更加生動(dòng)活潑的程式語(yǔ)言,也是目前網(wǎng)頁(yè)中設(shè)計(jì)中最容易學(xué)又最方便的語(yǔ)言。你可以利用Javacript輕易的做出親切的歡迎訊息、漂亮的數(shù)字鐘、有廣告效果的跑馬燈及簡(jiǎn)易的選舉,還可以顯示瀏覽器停留的時(shí)間。讓這些特殊效果提高網(wǎng)頁(yè)的互動(dòng)性、提供親切的服務(wù)。
由來(lái)
談到JavaScript的歷史,首先就得介紹[網(wǎng)景](Netscape)這家公司,相信很多人使用過(guò)Netscape瀏覽器來(lái)瀏覽網(wǎng)頁(yè),這家公司在設(shè)計(jì)瀏覽器的時(shí)候,一方面為了輔助本身發(fā)展的一種名為L(zhǎng)iveWire的程式,另一方面為了提高網(wǎng)頁(yè)設(shè)計(jì)的互動(dòng)性,所以發(fā)展了LiveScript這個(gè)電腦語(yǔ)言。
那JavaScript和LiveScript有什么關(guān)系呢?在Netscape發(fā)展LiveScript的同時(shí),另一家名為[升陽(yáng)](Sun)的公司也正在發(fā)展Java語(yǔ)言,為了輔助Java的網(wǎng)頁(yè)程式方面的設(shè)計(jì),所以這兩家公司進(jìn)行合作,共同發(fā)展LiveScript語(yǔ)言,并且將LiveScript語(yǔ)言改名為Javacript,這就是Javacript的由來(lái)。
JavaScript剛開(kāi)始時(shí)僅應(yīng)用在Netscape瀏覽器,不過(guò)隨著使用JavaScript制作網(wǎng)頁(yè)的人愈來(lái)愈多,微軟的IE瀏覽器也提供了新功能,現(xiàn)在可以在IE瀏覽器上看到JavaScript的效果了。
JavaScript和Java的差別
JavaScript和Java的差別究竟在哪兒呢?雖然名稱(chēng)很相似,而且都是在Internet和WWW盛行之下,所發(fā)展出為的兩種提供網(wǎng)頁(yè)程式設(shè)計(jì)的語(yǔ)言,但是卻有很大的差異。前面介紹過(guò)JavaScript的前身是網(wǎng)景(Netscape)公司發(fā)展的Live Script語(yǔ)言,直到和升陽(yáng)(Sun)公司合作之后,才改名為JavaScript,而Java也是由升陽(yáng)公司發(fā)展出來(lái)的,所以名字才會(huì)這么相似。盡管如此,JavaScript和Java仍然是不同的語(yǔ)言。我們整理出以下四點(diǎn)幫助你了解兩者的差異:
1、JavaScript是一種象文件一樣的描述語(yǔ)言,透過(guò)瀏覽器就可以直接執(zhí)行;而Java像正統(tǒng)的程式語(yǔ)言(如C/C++)一樣,必須先進(jìn)行編繹和連結(jié)等動(dòng)作才可執(zhí)行。
2、JavaScript必須編寫(xiě)在HTML文件中,直接查看網(wǎng)頁(yè)的原始碼,就可以看到JavaScript程式,所以沒(méi)有保護(hù),任何人都可以透過(guò)HTML文件復(fù)制程式;而Java應(yīng)用在網(wǎng)頁(yè)的程式稱(chēng)為Java Applet(Applet是[小程式]的意思),是和HTML文件分開(kāi)的。
3、JavaScript的結(jié)構(gòu)較為自由松散,譬如,程式中使用的變數(shù)前并不是需要明確的定義,而Java和正統(tǒng)的程式語(yǔ)言一樣,結(jié)構(gòu)較為嚴(yán)謹(jǐn)。
4、JavaScript不具有讀寫(xiě)檔案及網(wǎng)絡(luò)控制等功能,Java則有提供這些功能,但是JavaScript在網(wǎng)頁(yè)內(nèi)容的控制和互動(dòng)性方面,可算是最方便快捷的。
JavaScript的功能
顯示信息提示
許多網(wǎng)站在你一連上時(shí),畫(huà)面上會(huì)先出現(xiàn)一個(gè)歡迎訊息對(duì)話(huà)盒,不但和你打招呼,還會(huì)發(fā)布一些重要訊息
顯示日期時(shí)間
某些網(wǎng)頁(yè)會(huì)顯示目前的日期和時(shí)間,可能你會(huì)覺(jué)得有點(diǎn)神奇,怎么瀏覽器會(huì)知道目前的時(shí)間呢?這也是JavaScript提供的功能,它可以偵測(cè)你的電腦目前的時(shí)間,并且顯示在網(wǎng)頁(yè)中。
顯示更新日期
許多網(wǎng)頁(yè)會(huì)公告最新更新日期讓大家知道,Java Scirpt可以自動(dòng)偵測(cè)網(wǎng)頁(yè)修改的日期,讓你省去在每次修改網(wǎng)頁(yè)時(shí)就得修改日期的動(dòng)作。
跑馬燈文字
讓你可以方便顯示較長(zhǎng)的訊息,又不占去大塊的版面空間。
按鈕變化效果
當(dāng)你移動(dòng)滑鼠游到左邊的按鈕上時(shí),按鈕便會(huì)變成色,在瀏覽器下方狀態(tài)列上也會(huì)顯示出相關(guān)文字,這也是利用JavaScript制作的動(dòng)態(tài)效果。
記得不怎么清楚 JavaScript 原身 是Netscape的LiveScript ,客戶(hù)端腳本語(yǔ)言,因?yàn)楫?dāng)時(shí)sun的java比較流行,便趕時(shí)髦 叫做 JavaScript
Script 即腳本意思,你可以理解它的中文意思即 java的客戶(hù)端腳本語(yǔ)言,實(shí)際上它與java是不同的
當(dāng)前文章:javascript中文,javascript中文教程
URL網(wǎng)址:http://chinadenli.net/article31/dsedcsd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站改版、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、定制網(wǎng)站、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容