我正在尝试创建一个将采用以下两个数组的函数:(数据在其他地方填充)
var playerImport = []
playerImport[0] = "";
playerImport[1] = "";
playerImport[2] = "";
playerImport[3] = "";
playerImport[4] = "";
var scoreImport = []
scoreImport[0] = "";
scoreImport[1] = "";
scoreImport[2] = "";
scoreImport[3] = "";
scoreImport[4] = "";
并将两个数组排在一起。
例如,scoreImport [0]是最低值,一旦排序,应该随身携带playerImport [0]。
我目前将此作为我的功能。
function sortHighscores(a, b)
var swapped;
do {
swapped = false;
for (var i=0; i < a.length-1; i++) {
if (a[i] > a[i+1])
{
var temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
var temp = b[i];
b[i] = b[i+1];
b[i+1] = temp;
swapped = true;
}
}
} while (swapped);
虽然这样可行,但如果我尝试对两个数组进行排序,并且一个或多个scoreImport包含两位数字,而其余数字包含一个数字,则只是将其直接放在底部并且无法正确排序。例如,如果scoreImport [4] = 20且其余为单位数字,则将值20分类为scoreImport [0],也称为最低值。
如何让这个函数理解单个和两位数值的排序?面对这一挑战时似乎崩溃了。
希望你能得到我想解释的内容。
许多人提前感谢。
答案 0 :(得分:0)
您的值似乎按字符串排序,您可能知道"20" < "3"
。在比较它们之前,将值转换为Number
s。例如+value
或Number(value)
或parseInt(value,10)
答案 1 :(得分:0)
您正在排序字符串,因此订单数字不匹配。
你可以......
parseInt(number, 10);