-1
我有一個數組,其中包含字母和數字我想按數值排序第一個字母升序,然後數字升序。通過jquery對字母和數字都進行排序的數組排序
我有一個數組,其中包含字母和數字我想按數值排序第一個字母升序,然後數字升序。通過jquery對字母和數字都進行排序的數組排序
您需要編寫自定義比較函數,並且該函數需要填充它與前導零找到的任何數字,以便字符串中的所有數字都具有相同的長度。
這將這樣的伎倆:
var fruits = ["Banana","5","15", "Orange", "Apple", "Mango"];
fruits.sort(myCompFunc);
function myCompFunc(a,b)
{
// pad digits
var x = padNumbers(a);
var y = padNumbers(b);
// return comparison
return (x>y);
}
function padNumbers(str)
{
var retVal = "";
var digits = "";
for (var i=0; i<str.length; i++)
{
var c = str.substr(i,1);
if (c>="0" && c<="9")
digits += c;
else
{
if (digits != "")
{
var l = 10-digits.length;
for (var d=0; d<l; d++)
digits = "0" + digits;
retVal += digits;
digits = "";
}
retVal += c;
}
}
if (digits != "")
{
var l = 10-digits.length;
for (var d=0; d<l; d++)
digits = "0" + digits;
retVal += digits;
}
return retVal;
}
可與正則表達式替換更簡潔來完成。
function padNumbers(str)
{
return str.replace(/\d+/g, function(match) {
return new Array(10-match.length+1).join('0')+match; });
}
你想要嗎? 那麼有沒有嘗試?或者你寫的代碼呢? – Blu
我試過.sort()和.reverse() – Shivam
設置jsfiddle它將足夠好 – Blu