我有以下数组。
var arr = ["1-5", "3-6", "2-4"];
有什么办法能让我像这样:
var arr = ["1-5", "2-4", "3-6"]
我尝试过jquery,但做不到,因为数组的值不是数字。
发布于 2015-01-09 13:19:04
您可以使用排序函数
按第一个号码排序
arr.sort(function (a, b) {
// a.split('-') - split a string into an array - ['1', '5']
// a.split('-')[0] - get first element - '1'
// "+" converts string to number - 1
// the same for "b"
return +a.split('-')[0] - +b.split('-')[0];
});
示例
按第二个数字排序
arr.sort(function (a, b) {
return +a.split('-')[1] - +b.split('-')[1];
});
示例
发布于 2015-01-09 13:26:35
使用数组排序。首先,对第一个数字进行比较。如果它们相等,则比较第二个数字。
var arr = ["1-5", "3-6", "2-4"];
var sorted = arr.sort(function(a,b){
var numsA = a.split('-');
var numsB = b.split('-');
if (numsA[0]-numsB[0] !== 0){
return numsA[0] - numsB[0];
}
return numsA[1] - numsB[1];
});
document.write(sorted);
发布于 2015-01-09 13:21:29
您可以尝试内置的排序功能arr.sort()
。
http://jsfiddle.net/qctg9cfx/
https://stackoverflow.com/questions/27861456
复制相似问题