注意:如果按照默认的排序方式,是按照字符串首字母大小进行排序的,"40"将排在"5"前面。
使用数字排序,必须通过一个函数作为参数来调用。
- 对字符串进行排序
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months); //> Array ["Dec", "Feb", "Jan", "March"]
- 对数字进行排序
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
// [1, 2, 3, 4, 5]
es2015
let numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b);
console.log(numbers);
// [1, 2, 3, 4, 5]
- 对拼接字符串进行排序
如下表所示,data和date是两列数据,数据类型为拼接字符串,需要将data和date进行排序操作。
逻辑为先分割每行的数据,按("/")左边的数字比较大小,进行升降序排列。
data | date |
---|---|
206/200 | 160/156 |
689/692 | 355/362 |
126/108 | 112/98 |
{prop: 'data', label: 'data', sortable:true,
sortMethod:function(a,b) {
let arr_a = a.data.split("/")
let arr_b = b.data.split("/")
return arr_a[0] - arr_b[0];
// return arr_a.length>0 && arr_b.length>0 && arr_a[0] - arr_b[0] > 0 ? 1 : -1; //判空
}
}