js可以使用sort函数进行排序操作,例如可以对[1,3,5,6,7]进行排序
arr.sort((a,b) => a-b);
那么可否对双重数组,并根据双重数组的首元素进行排序呢?答案是可以的,利用sort的回调即可
- 排序双重数组
例如对arr = [[2,6],[1,3],[8,10],[9,18]]数组排序,可以这么写:
arr = arr .sort((a,b)=> {
return a[0] - b[0];
});
排序结果为 [[1,3],[2,6],[8,10],[9,18]]
也可以用sort()去给json对象数组排序。例如,排序一个json对象数组
var json = [
{name:"li", Score:"197", first:"100",second:"97"},
{name:"wang", Score:"197",first:"99", second:"98"},
{name:"zh", Score:"185", first:"88", second:"97"}];
json.sort(function(a,b){
var value1 = a.Score,
value2 = b.Score;
if(value1 === value2){
return b.first- a.first;
}
return value2 - value1;
});
输出:
0:{name:"li", Score:"197", first:"100",second:"97"}
1:{name:"wang", Score:"197",first:"99", second:"98"}
2:{name:"zh", Score:"185", first:"88", second:"97"}
所以,排序多重,利用sort函数的回调即可解决问题
那么如何对数组中的字母进行排序?
- 排序字母
s = [a,c,b];
s = s.sort((a,b) => a<b?-1:a>b?1:0);