在这种环境下,我只能访问内部 Javascript 函数,因此无法加载外部库。
当尝试按内部、中间和外部 3 个键进行排序时,似乎只保留了我最后的排序。
function Claim(claimNumber, lastName, claimStatus, record)
{
this.claimNumber = claimNumber;
this.lastName = lastName;
this.claimStatus = claimStatus;
this.record = record;
}
function sortLastName(a, b) {
var o1 = a["lastName"].toUpperCase();
var o2 = b["lastName"].toUpperCase();
if (o1 < o2) return -1;
if (o1 > o2) return 1;
return 0;
}
function sortClaimNumber(a, b) {
var o1 = a["claimNumber"].toUpperCase();
var o2 = b["claimNumber"].toUpperCase();
if (o1 < o2) return -1;
if (o1 > o2) return 1;
return 0;
}
function sortClaimStatus(a, b) {
var o1 = ("00" + a["claimStatus"].toUpperCase()).substr(-2);
var o2 = ("00" + b["claimStatus"].toUpperCase()).substr(-2);
if (o1 < o2) return 1;
if (o1 > o2) return -1;
return 0;
}
var claimListArray = buildClaimList(record);
claimListArray.sort(sortClaimStatus);
claimListArray.sort(sortClaimNumber);
claimListArray.sort(sortLastName);
输出应如下所示(lastname asc、claimnumber asc、claimstatus desc):
AARDVARK 111222A 15
AARDVARK 111222A 6
AARDVARK 111222A 1
AARDVARK 222555C 8
AARDVARK 222555C 4
BANKS 123132Z 78
但看起来像:
AARDVARK 111222A 15
AARDVARK 222555C 4
AARDVARK 111222A 1
AARDVARK 222555C 8
AARDVARK 111222A 6
BANKS 123132Z 78
也就是说,只保留了lastName排序,就好像前两种排序没有发生一样。是否有一些关于数组和排序的东西我错过了忽略以前的排序?
有更好的方法吗?