国产探花免费观看_亚洲丰满少妇自慰呻吟_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文件按名稱排序效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 白玉县| 伊金霍洛旗| 宝丰县| 吉首市| 湘潭县| 玛纳斯县| 剑河县| 新丰县| 旺苍县| 根河市| 齐河县| 织金县| 科技| 深泽县| 克山县| 西贡区| 二连浩特市| 湘阴县| 凤阳县| 清徐县| 西充县| 宜兴市| 息烽县| 铜梁县| 卓尼县| 宿松县| 英山县| 敖汉旗| 肃南| 绵竹市| 抚松县| 平潭县| 长宁区| 大洼县| 长子县| 舒城县| 普安县| 武宣县| 拜城县| 武宣县| 泌阳县|