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

基于JS模仿windows文件按名稱排序效果

 更新時(shí)間:2016年06月29日 10:29:36   作者:本無(wú)所謂有無(wú)  
這篇文章主要介紹了基于JS實(shí)現(xiàn)模仿windows文件按名稱排序的相關(guān)資料,主要是對(duì)數(shù)字的處理操作,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

作個(gè)記錄,主要是對(duì)數(shù)字的處理,如果數(shù)字的前面字符是相同的,則數(shù)字以值比較,而不是單個(gè)字符之間的比較。

function SortLikeWin(v1, v2) {
var a = v1.name;
var b = v2.name;
var reg = /[0-9]+/g;
var lista = a.match(reg);
var listb = b.match(reg);
if (!lista || !listb) {
return a.localeCompare(b);
}
for (var i = 0, minLen = Math.min(lista.length, listb.length) ; i < minLen; i++) {
//數(shù)字所在位置序號(hào)
var indexa = a.indexOf(lista[i]);
var indexb = b.indexOf(listb[i]);
//數(shù)字前面的前綴
var prefixa = a.substring(0, indexa);
var prefixb = a.substring(0, indexb);
//數(shù)字的string
var stra = lista[i];
var strb = listb[i];
//數(shù)字的值
var numa = parseInt(stra);
var numb = parseInt(strb);
//如果數(shù)字的序號(hào)不等或前綴不等,屬于前綴不同的情況,直接比較
if (indexa != indexb || prefixa != prefixb) {
return a.localeCompare(b);
}
else {
//數(shù)字的string全等
if (stra === strb) {
//如果是最后一個(gè)數(shù)字,比較數(shù)字的后綴
if (i == minLen - 1) {
return a.substring(indexa).localeCompare(b.substring(indexb));
}
//如果不是最后一個(gè)數(shù)字,則循環(huán)跳轉(zhuǎn)到下一個(gè)數(shù)字,并去掉前面相同的部分
else {
a = a.substring(indexa + stra.length);
b = b.substring(indexa + stra.length);
}
}
//如果數(shù)字的string不全等,但值相等
else if (numa == numb) {
//直接比較數(shù)字前綴0的個(gè)數(shù),多的更小
return strb.lastIndexOf(numb + '') - stra.lastIndexOf(numa + '');
}
else {
//如果數(shù)字不等,直接比較數(shù)字大小
return numa - numb;
}
}
}
}

使用方法,Array.sort(SortLikeWin);

以上所述是小編給大家介紹的基于JS模仿windows文件按名稱排序效果,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 41個(gè)Web開(kāi)發(fā)者必須收藏的JavaScript實(shí)用技巧

    41個(gè)Web開(kāi)發(fā)者必須收藏的JavaScript實(shí)用技巧

    41個(gè)Web開(kāi)發(fā)者必須收藏的JavaScript實(shí)用技巧,分享給大家,感興趣的小伙伴們可以參考一下
    2016-07-07
  • JavaScript設(shè)計(jì)模式之代理模式介紹

    JavaScript設(shè)計(jì)模式之代理模式介紹

    這篇文章主要介紹了JavaScript設(shè)計(jì)模式之代理模式介紹,代理模式顧名思義就是用一個(gè)類來(lái)代替另一個(gè)類來(lái)執(zhí)行方法功能,需要的朋友可以參考下
    2014-12-12
  • Worker加載JS腳本跨域問(wèn)題的幾種解決方法

    Worker加載JS腳本跨域問(wèn)題的幾種解決方法

    Web Worker 是一種在后臺(tái)線程中運(yùn)行的 JavaScript 腳本,允許我們?cè)诓蛔枞骶€程的情況下執(zhí)行復(fù)雜計(jì)算或處理,Worker 加載的 JS 腳本如果存在跨域問(wèn)題,可能導(dǎo)致腳本無(wú)法正常加載和執(zhí)行,以下是解決 Worker 加載 JS 腳本跨域問(wèn)題的幾種方法,需要的朋友可以參考下
    2025-02-02
  • JavaScript中關(guān)于iframe滾動(dòng)條的去除和保留

    JavaScript中關(guān)于iframe滾動(dòng)條的去除和保留

    在開(kāi)發(fā)中經(jīng)常遇到去掉全部的滾動(dòng)條,去掉右邊的滾動(dòng)條且保留底下的滾動(dòng)條,去掉底下的滾動(dòng)條且保留右邊的滾動(dòng)條,大家基于js是怎么實(shí)現(xiàn)的呢?下面小編通過(guò)本文給大家詳細(xì)介紹下,對(duì)js iframe滾動(dòng)條相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-11-11
  • ES6新特性之Symbol類型用法分析

    ES6新特性之Symbol類型用法分析

    這篇文章主要介紹了ES6新特性之Symbol類型用法,結(jié)合形式分析了Symbol類型的功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-03-03
  • layui的面包屑或者表單不顯示的解決方法

    layui的面包屑或者表單不顯示的解決方法

    今天小編就為大家分享一篇layui的面包屑或者表單不顯示的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • JS如何生成動(dòng)態(tài)列表

    JS如何生成動(dòng)態(tài)列表

    這篇文章主要為大家詳細(xì)介紹了JS如何生成動(dòng)態(tài)列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • JavaScript之AOP編程實(shí)例

    JavaScript之AOP編程實(shí)例

    這篇文章主要介紹了JavaScript的AOP編程,以實(shí)例形式分析了javascript面向切面編程的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • js獲取當(dāng)前年月日-YYYYmmDD格式的實(shí)現(xiàn)代碼

    js獲取當(dāng)前年月日-YYYYmmDD格式的實(shí)現(xiàn)代碼

    下面小編就為大家?guī)?lái)一篇js獲取當(dāng)前年月日-YYYYmmDD格式的實(shí)現(xiàn)代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • js處理自己不能定義二維數(shù)組的方法詳解

    js處理自己不能定義二維數(shù)組的方法詳解

    本篇文章主要是對(duì)js處理自己不能定義二維數(shù)組的方法進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望讀大家有所幫助
    2014-03-03

最新評(píng)論

勐海县| 阳朔县| 德州市| 莆田市| 凌海市| 汶川县| 磐石市| 武邑县| 华亭县| 日照市| 舞阳县| 盐津县| 定兴县| 确山县| 岐山县| 包头市| 武川县| 甘谷县| 西乌珠穆沁旗| 镇雄县| 景洪市| 澄迈县| 始兴县| 宕昌县| 沙田区| 德安县| 霍林郭勒市| 遂川县| 土默特右旗| 梧州市| 铜山县| 中卫市| 云龙县| 宁乡县| 北流市| 芜湖市| 东乡县| 平安县| 宣汉县| 兴业县| 明星|