1、数组排序
var datas=["1001","1002","100201","100202","1003","1004",]
// 升序
datas.sort((a,b)=>a-b) //datas: ['1001', '1002', '1003', '1004', '100201', '100202']
// 降序
datas.sort((a,b)=>b-a)// datas: ['100202', '100201', '1004', '1003', '1002', '1001']
// 按字符串升序
datas.sort((a,b)=>a.localeCompare(b)) // datas: ['1001', '1002', '100201', '100202', '1003', '1004']
// 按字符串降序
datas.sort((a,b)=>b.localeCompare(a)) // datas: ['1004', '1003', '100202', '100201', '1002', '1001']
2、多字段排序
compare(sort,orderBy){ //这是比较函数
return function(obj,obj1){
let a = 0;
let b = 0
if(orderBy){ // 有排序字段
let split = orderBy.split(',')
for(let i=0;i<split.length;i++){
a += isNaN(obj[split[i]])?0:obj[split[i]]
b += isNaN(obj1[split[i]])?0:obj1[split[i]]
}
}else{ // 没有排序字段
for(let key in obj){
a +=isNaN(obj[key])?0:obj[key]
}
for(let key in obj1){
b +=isNaN(obj1[key])?0:obj1[key]
}
}
if(sort==="desc")return b - a;//降序
return a - b; //升序
}
},
/**
* arr 要排序的数组
* sort 升序 or 降序
* orderBy 根据哪个字段排序 (多个字段以逗号分割)
*/
rowsSort(arr,sort,orderBy){
arr.sort(this.compare(sort,orderBy));
},
var arr=[
{text:"row1",num:5,num1:0},
{text:"row2",num:4,num1:2},
{text:"row3",num:6,num1:1},
{text:"row4",num:2,num1:5},
]
this.rowsSort(arr,"desc","num,num1")