Edi*_*ruz 3 javascript arrays sorting string
我需要使用普通的旧Javascript对这种格式的数组进行排序.
var arr = ["0.01 BASIC", "0.01 SEF", "0.015 BASIC"];
Run Code Online (Sandbox Code Playgroud)
我需要的是,数组首先按十进制排序,然后按字符串排序,并产生如下所示的输出;
arr = ["0.01 BASIC", "0.015 BASIC", "0.01 SEF"];
Run Code Online (Sandbox Code Playgroud)
我不能在执行排序时使用jquery.只是简单的旧Javascript.
你可以这样做 :
arr.sort(function(a,b){
var at = a.split(' '), bt = b.split(' ');
if (at[1]!=bt[1]) return at[1]>bt[1] ? 1 : -1;
return parseFloat(at[0])-parseFloat(bt[0]);
});
Run Code Online (Sandbox Code Playgroud)
如果要对非常大的数组进行排序,则缓存密钥可能会更快.但它对大多数阵列来说可能无关紧要.
示例:
["0.01 BASIC", "0.01 SEF", "0.015 BASIC", "0.2 BASIC", "0.001 SEF", "0.2 AAA"]
->
["0.2 AAA", "0.01 BASIC", "0.015 BASIC", "0.2 BASIC", "0.001 SEF", "0.01 SEF"]
Run Code Online (Sandbox Code Playgroud)