国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 09:35:05
字體:
來源:轉載
供稿:網友

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

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++) {//數字所在位置序號var indexa = a.indexOf(lista[i]);var indexb = b.indexOf(listb[i]);//數字前面的前綴var prefixa = a.substring(0, indexa);var prefixb = a.substring(0, indexb);//數字的stringvar stra = lista[i];var strb = listb[i];//數字的值var numa = parseInt(stra);var numb = parseInt(strb);//如果數字的序號不等或前綴不等,屬于前綴不同的情況,直接比較if (indexa != indexb || prefixa != prefixb) {return a.localeCompare(b);}else {//數字的string全等if (stra === strb) {//如果是最后一個數字,比較數字的后綴if (i == minLen - 1) {return a.substring(indexa).localeCompare(b.substring(indexb));}//如果不是最后一個數字,則循環跳轉到下一個數字,并去掉前面相同的部分else {a = a.substring(indexa + stra.length);b = b.substring(indexa + stra.length);}}//如果數字的string不全等,但值相等else if (numa == numb) {//直接比較數字前綴0的個數,多的更小return strb.lastIndexOf(numb + '') - stra.lastIndexOf(numa + '');}else {//如果數字不等,直接比較數字大小return numa - numb;}}}}

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

以上所述是小編給大家介紹的基于JS模仿windows文件按名稱排序效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金塔县| 南陵县| 剑河县| 八宿县| 桑日县| 克什克腾旗| 察隅县| 凤翔县| 奉新县| 揭阳市| 自贡市| 乃东县| 顺义区| 祁连县| 宜良县| 靖西县| 曲周县| 深圳市| 彭泽县| 青川县| 卓尼县| 博客| 鱼台县| 当涂县| 伊春市| 濮阳县| 湟源县| 南溪县| 望谟县| 石阡县| 木里| 疏附县| 南华县| 肇东市| 信丰县| 鹤岗市| 临清市| 红原县| 兴义市| 临清市| 六安市|