我们正在浏览Array.prototype.sort()
MDN文档,在那里我们看到了一个示例:
var array1 = [1, 2,3,4,5,6,7,8,9,10];
array1.sort();
console.log(array1);
所以预期的输出是
[1, 2, 3 , 4, 5, 6, 7, 8, 9, 10]
但我们得到了这个
[1, 10, 2, 3, 4, 5, 6, 7, 8, 9]
为什么不像我们预期的那样排序?
答案 0 :(得分:0)
您需要使用排序功能。默认情况下,sort使用字母排序而不是数字。
array1.sort(function (a,b) {
return a - b; // Ascending
});
array1.sort(function (a,b) {
return b - a; // Descending
});
答案 1 :(得分:0)
来自This post的引用
var numArray = [1, 2,3,4,5,6,7,8,9,10];
for (var i = 0; i < numArray.length; i++) {
var target = numArray[i];
for (var j = i - 1; j >= 0 && (numArray[j] > target); j--) {
numArray[j+1] = numArray[j];
}
numArray[j+1] = target
}
console.log(numArray);
&#13;
答案 2 :(得分:0)
function sorter(a, b) {
if (a < b) return -1; // any negative number works
if (a > b) return 1; // any positive number works
return 0; // equal values MUST yield zero
}
[1, 2,3,4,5,6,7,8,9,10].sort(sorter);
答案 3 :(得分:0)
请使用以下代码:
var array1 = [1, 2,3,4,5,6,7,8,9,10];
array1.sort(function(a,b){
return parseInt(a) > parseInt(b);
}
);
console.log(array1);
答案 4 :(得分:0)
您可以将函数传递给sort方法,For Asc sort:
array1.sort(function(a,b){return a>b?1:b>a?-1});