最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于JS實(shí)現(xiàn)數(shù)字+字母+中文的混合排序方法

 更新時(shí)間:2016年06月06日 14:39:22   作者:FungLeo  
這篇文章主要介紹了基于JS實(shí)現(xiàn)數(shù)字+字母+中文的混合排序方法的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下

在上篇文章給大家介紹了JavaScript sort數(shù)組排序方法和自我實(shí)現(xiàn)排序方法小結(jié),用自己的方法實(shí)現(xiàn)了數(shù)字?jǐn)?shù)組的排序。

當(dāng)然,實(shí)際運(yùn)用中,我還是會(huì)使用sort方法更加方便.但是,我上一篇博文,僅僅是實(shí)現(xiàn)了數(shù)字排序,而srot方法默認(rèn)可是能給字母實(shí)現(xiàn)排序的哦!而我的代碼只能排序數(shù)字,看起來還是弱弱的.

所以,我得加上能排字母甚至中文的排序方法.

實(shí)現(xiàn)代碼

$(function(){
var arr = ["Jack","Book","Fung",76,"Love","Mark","中國","china","phone","劉德華"];
console.log('原數(shù)組');
console.log(arr);
console.log('for方法從小到大排序');
console.log(arrSortMinToMax(arr));
console.log('for方法從大到小排序');
console.log(arrSortMaxToMin(arr));
console.log('原數(shù)組');
console.log(arr);
});
function arrMinNum(arr){
var minNum = Infinity, index = -1,minVul = "";
for (var i = 0; i < arr.length; i++) {
if (typeof(arr[i]) == "string") {
if (arr[i].charCodeAt()<minNum) {
minNum = arr[i].charCodeAt();
minVul = arr[i];
index = i;
}
}else {
if (arr[i]<minNum) {
minNum = arr[i];
minVul = arr[i]
index = i;
}
}
};
return {"minNum":minVul,"index":index};
}
function arrSortMinToMax(arr){
var arrNew = [];
var arrOld = arr.concat();
for (var i = 0; i < arr.length; i++) {
arrNew.push(arrMinNum(arrOld).minNum);
arrOld.splice(arrMinNum(arrOld).index,1)
};
return (arrNew);
}
function arrMaxNum(arr){
var maxNum = -Infinity, index = -1,maxVul = "";
for (var i = 0; i < arr.length; i++) {
if (typeof(arr[i]) == "string") {
if (arr[i].charCodeAt()>maxNum) {
maxNum = arr[i].charCodeAt();
maxVul = arr[i];
index = i;
}
}else {
if (arr[i]>maxNum) {
maxNum = arr[i];
maxVul = arr[i];
index = i;
}
}
};
return {"maxNum":maxVul,"index":index};
}
function arrSortMaxToMin(arr){
var arrNew = [];
var arrOld = arr.slice(0);
for (var i = 0; i < arr.length; i++) {
arrNew.push(arrMaxNum(arrOld).maxNum);
arrOld.splice(arrMaxNum(arrOld).index,1);
};
return (arrNew);
}

運(yùn)行截圖如下:

字母數(shù)字中文混合排序結(jié)果

排序原理

如果是數(shù)字,則直接是數(shù)字進(jìn)行比對(duì)

如果是字符串,則使用charCodeAt()轉(zhuǎn)換成Unicode編碼進(jìn)行排序.

Unicode 是 0 - 65535 之間的整數(shù)

其他說明

按照正常的排序邏輯,應(yīng)該是:數(shù)字比一切字母都小,字母比一切中文都小,中文應(yīng)該按照首字拼音的首字母排序.

我的這段代碼除了字母比一切中文都小這一條實(shí)現(xiàn)了,其他都沒有實(shí)現(xiàn).

邏輯也應(yīng)該可以實(shí)現(xiàn),把數(shù)字字母中文分別找出來,數(shù)字跟數(shù)組進(jìn)行比較,字母跟字母比較,中文跟中文比較,然后拼接數(shù)組

中文獲取首字的首字母可能稍微麻煩一點(diǎn).

漢字居然可以直接比對(duì)的.

張飛想要做老大是有道理的

如上圖所示,張飛想要做老大是有道理的.JavaScript終于在千年之后為張飛正名,當(dāng)年他就應(yīng)該是做老大的!~

相關(guān)文章

  • 根據(jù)user-agent判斷蜘蛛代碼黑帽跳轉(zhuǎn)代碼(js版與php版本)

    根據(jù)user-agent判斷蜘蛛代碼黑帽跳轉(zhuǎn)代碼(js版與php版本)

    這篇文章主要介紹了根據(jù)user-agent判斷蜘蛛代碼黑帽跳轉(zhuǎn)代碼(js版與php版本),需要的朋友可以參考下
    2015-09-09
  • 淺析js封裝和作用域

    淺析js封裝和作用域

    在編寫web軟件時(shí),遇到一些可以共用js的情況,于是就想著如何封裝js代碼?;拘枨蠛芎唵?,其實(shí)就是根據(jù)不同的情況封裝js代碼
    2013-07-07
  • 無間斷滾動(dòng)的新聞文章列表 多瀏覽器兼容

    無間斷滾動(dòng)的新聞文章列表 多瀏覽器兼容

    無間斷滾動(dòng)的新聞文章列表 多瀏覽器兼容...
    2007-01-01
  • Js面試算法詳解

    Js面試算法詳解

    AI的興起,使得大家對(duì)算法的關(guān)注也越來越高。而作為一個(gè)前端工程師,算法很多時(shí)候是我們的弱點(diǎn),本文譯自國外一篇面試題。列出了一些簡單算是跟算法相關(guān)的面試題
    2018-04-04
  • 原生javascript制作貪吃蛇小游戲的方法分析

    原生javascript制作貪吃蛇小游戲的方法分析

    這篇文章主要介紹了原生javascript制作貪吃蛇小游戲的方法,結(jié)合具體實(shí)例形式分析了JavaScript實(shí)現(xiàn)貪吃蛇小游戲的具體步驟、功能實(shí)現(xiàn)、數(shù)值運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • JavaScript提升機(jī)制Hoisting詳解

    JavaScript提升機(jī)制Hoisting詳解

    這篇文章主要介紹了JavaScript提升機(jī)制Hoisting詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • javascript中CheckBox全選終極方案

    javascript中CheckBox全選終極方案

    在javascript頁面中實(shí)現(xiàn)CheckBox或者Radio的選中狀態(tài)是一件很容易的事情,下面我們來給大家展示下在asp.net中使用javascript中CheckBox全選終極方案,有需要的小伙伴可以參考下。
    2015-05-05
  • JS檢測數(shù)組類型的方法小結(jié)

    JS檢測數(shù)組類型的方法小結(jié)

    這篇文章主要介紹了js檢測數(shù)組類型的方法小結(jié),有instanceof方法Array.isArray() 方法和Object.prototype.toString.call()方法,都是比較常用的,需要的朋友可以參考下
    2017-03-03
  • 一步快速解決微信小程序中textarea層級(jí)太高遮擋其他組件

    一步快速解決微信小程序中textarea層級(jí)太高遮擋其他組件

    這篇文章主要給大家介紹了關(guān)于如何通過一步快速解決微信小程序中textarea層級(jí)太高遮擋其他組件問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • JS async 函數(shù)的含義和用法實(shí)例總結(jié)

    JS async 函數(shù)的含義和用法實(shí)例總結(jié)

    這篇文章主要介紹了JS async 函數(shù)的含義和用法,結(jié)合實(shí)例形式總結(jié)分析了JS async 函數(shù)的基本功能、含義、使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04

最新評(píng)論

潞城市| 紫金县| 金川县| 西乌珠穆沁旗| 随州市| 从江县| 关岭| 房产| 泰兴市| 德安县| 广水市| 北碚区| 稻城县| 错那县| 肃北| 张掖市| 米林县| 斗六市| 榕江县| 柘城县| 平原县| 文安县| 曲麻莱县| 民勤县| 昌乐县| 乡宁县| 八宿县| 博爱县| 东宁县| 玉溪市| 商城县| 秦安县| 微山县| 合作市| 蚌埠市| 大庆市| 阳朔县| 阿鲁科尔沁旗| 黎城县| 鲁山县| 开远市|