- javascript/
- Javascript 如何以这种方式对字符串进行排序?
这就是BitTorrent客户端qBittorrent如何对文件名进行排序。
Javascript 如何以这种方式对字符串进行排序?
这就是BitTorrent客户端qBittorrent如何对文件名进行排序。
Javascript 如何以这种方式对字符串进行排序?
这就是BitTorrent客户端qBittorrent如何对文件名进行排序。,javascript,sorting,Javascript,Sorting,免责声明:我对torrent和这些文件不感兴趣,不知道它们是什么,也没有下载任何一个
如何以这种方式对Javascript中的字符串进行排序?我不太明白其中的逻辑,但它肯定不是随机的
我试过这个
strings.sort((a,b)=>a.localeCompare(b,“en”{
敏感性:“案例”,
案例一:“上层”,
数字:真
}));
但这是我得到的,不是我想要的
[
“1.ico”,
“01.ico”,
“03.ico”,
“04.ico”,
“05.ico”,
“7-zip ICO
免责声明:我对torrent和这些文件不感兴趣,不知道它们是什么,也没有下载任何一个
如何以这种方式对Javascript中的字符串进行排序?我不太明白其中的逻辑,但它肯定不是随机的
我试过这个
strings.sort((a,b)=>a.localeCompare(b,“en”{
敏感性:“案例”,
案例一:“上层”,
数字:真
}));
但这是我得到的,不是我想要的
[
“1.ico”,
“01.ico”,
“03.ico”,
“04.ico”,
“05.ico”,
“7-zip ICO m1losh_1.ICO”,
“07.ico”,
“7z银牌。ico”,
“7z.ico”,
“7z1.ico”,
“7zfm.ico”,
“7Zip.ico”,
“7ZSFX.ico”,
“7zSfxCreate_99.ico”,
“7ZSplit.ico”,
“7zz.ico”,
“08.ico”,
“09.ico”,
“11.ico”,
“14.ico”,
“22.ico”,
“101.ico”,
“107.ico”,
“128.ico”,
“138.ico”,
“777.ico”,
“7833-Zedudman-WinRar_vista.ico”,
“exe.ico”,
“hfs.ico”,
“hg.ico”,
“Icon.ico”,
“Icon1.ico”,
“icon17.ico”,
“inst.ico”,
“安装-2.ico”,
“安装-3.ico”,
“安装-4.ico”,
“安装-5.ico”,
“安装-6.ico”,
“安装-7.ico”,
“安装-8.ico”,
“安装-9.ico”,
“安装-11.ico”,
“安装-12.ico”,
“安装-13.ico”,
“安装-14.ico”,
“安装-15.ico”,
“安装-16.ico”,
“安装-17.ico”,
“安装-18.ico”,
“MAINICON.ico”,
“momitor.ico”,
“PSA_1.ico”,
“qfsinstall.ico”,
“自述!!!.txt”,
“Token_7zip-dark.ico”,
“Token_7zip-light.ico”,
“wusa.ico”
]
排序依据:
- 项目是否以数字开头
- 然后,根据前导数字中的字符数
- 然后,做一个测试
“1.ico”、“01.ico”、“03.ico”、“04.ico”、“05.ico”、“05.ico”、“7-zip ico”7-ZICO 1.ico 1.ico 1.ico 1.ico 1.ico 1.ico 1.ico 1.ico”、“7 Z银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.银.ico“,“hfs.ico”,“hg.ico”,“Icon.ico”,“Icon1.ico”,“icon17.ico”,“inst.ico”,“Install-2.ico”,“Install-3.ico”,“Install-4.ico”,“Install-5.ico”,“Install-6.ico”,“Install-7.ico”,“Install-8.ico”,“Install-9.ico”,“Install-11.ico”,“Install-12.ico”,“Install-13.ico”,“Install-14.ico”,“Install-15.ico”,“Install-16.ico”,“Install-17.ico”,“Install-18.ico”,“main”,“momitor.ico”、“PSA_1.ico”、“qfInstall.ico”、“自述文件!!!.txt”、“Token_7zip-dark.ico”、“Token_7zip-light.ico”、“wusa.ico”];
array.sort((a,b)=>{
常数n1=a.match(/^\d+/)?[0],
n2=b.match(/^\d+/)?[0]
返回(n1==null)-(n2==null)
||n1?长度-n2?长度
||a.localeCompare(b,未定义,{numeric:true,敏感度:'base'})
})
log(数组)已修改,其代码有点错误
“1.ico”、“01.ico”、“03.ico”、“04.ico”、“05.ico”、“05.ico”、“7-zip ico”7-ZICO 1.ico 1.ico 1.ico 1.ico 1.ico 1.ico 1.ico 1.ico”、“7 Z银.银.银.银.银.银.银.银.银.银.ico、7z.银.银.ico、7z.银.银.银.ico、7z.银.银.ico、7z.银.ico、7z.银.ico、7z.ico、7z.ico、7z.ico、7z.ico、7z.ico、7z.ico、7z.ico、7z.ico、7z.ico、7z.ico、7z.ico、7z.ico、7z.ico、7z.ico、7z.ico、7zexe.ico、hfs.ico、hg.ico、Icon.ico、Icon1.ico、icon17.ico、inst.ico、Install-2.ico、Install-3.ico、Install-4.ico、Install-5.ico、Install-6.ico、Install-7.ico、Install-8.ico、Install-9.ico、Install-11.ico、Install-12.ico、Install-13.ico、Install-14.ico、Install-15.ico、Install-16.ico、Install-17.ico、Install-18.ico”MAINICON.ico、“momitor.ico”、“PSA_1.ico”、“qfsinstall.ico”、“自述文件!!!.txt”、“Token_7zip-dark.ico”、“Token_7zip-light.ico”、“wusa.ico”];
strings.sort((a,b)=>
((a.match(/^\d+/)?[0]。长度| |无穷大)-(b.match(/^\d+/)?[0]。长度| |无穷大))
||a.localeCompare(b,“en-u-kf-upper-kn”,{灵敏度:“基本”})
);
console.log(strings);排序的逻辑是什么?确切地说,排序是什么criteria@adiga我不太明白这个问题的逻辑。正如你所看到的,它肯定不是完全随机的。我相信“自然排序”“这就是你想要的。Dave Keolle的博客对此进行了讨论。这可能是一个不同但相似的问题:@kkааСааааааааааааааа是的,并不是说您不能。我的看法: