const list = [
{type: '2', isEnable: false,},
{type: '3', isEnable: true,},
{type: '1', isEnable: true,},
{type: '4', isEnable: false,},
{type: '0', isEnable: true,}
]
根据type升序
list = list.sort((a, b) => a.type - b.type)
首先isEnable为true排前面,然后type升序
list = list.sort((a, b) => a.type - b.type)
list = list.sort((a, b) => a.isEnable> b.isEnable? -1 : 1)
list = list.sort((a, b) => {
if(a.isEnable == b.isEnable){
return a.type - b.type
}else{
return a.isEnable > b.isEnable? -1 : 1
}
})
list = list.sort((a, b) => a.isEnable == b.isEnable ? (a.type - b.type) : (a.isEnable > b.isEnable? -1 : 1))
5、对象数组指定字段排序
排序前:有效1 有效2 无效3 有效4 无效5 无效6 有效7
排序后:有效1 有效2 有效4 有效7 无效3 无效5 无效6
var datas = [{valid: true,user:1},{valid: true,user:2},{valid: false,user:3},{valid: true,user:4},{valid: false,user:5},{valid: false,user:6},{valid: true,user:7}]
console.log(datas);
this.rankList = this.sortByKey(datas,'valid');
console.log(this.rankList);
//排名列表
sortByKey (array, key) {
return array.sort(function (a, b) {
var x = a[key]
var y = b[key]
return ((x > y) ? -1 : ((x < y) ? 1 : 0))
})
}