排序的字母數字元素這是我的數組:解析和基於十進制子
var arr=["Iteration 3.1","Iteration 3.2","Iteration 2.2","Iteration 2.3","Iteration 2.1"];
預期成果是:
Iteration 3.2
Iteration 3.1
Iteration 2.3
Iteration 2.2
Iteration 2.1
我嘗試:
arr.sort(function(a,b){
a=a.match(/[^a-zA-Z]/);
b=b.match(/[^a-zA-Z]/);
var an=parseFloat(a,10);
var bn=parseFloat(b,10);
return an<bn?1:(an>bn?-1:(a<b?-1:(a>b?1:0)));
});
我目前得到:
Iteration 3.1
Iteration 3.2
Iteration 2.2
Iteration 2.3
Iteration 2.1
整數和小數部分嘗試改變表達式爲:/ [^ a-zA-Z] /(即增加一個空格)。 parseInt不喜歡空格。此外,使用parseFloat,因爲parseInt會刪除句點和小數。 –
試過了,不起作用 –