JS按指定顺序排序
let originArr = [
{
name:"第一",code:1
},
{
name:"第二",code:2
},
{
name:"第三",code:3
},
{
name:"第四",code:4
}
]
let arr = [
{
name:"第三",code:3
},
{
name:"第二",code:2
},
{
name:"第一",code:1
},
{
name:"第四",code:4
}
];
let originArrCode = originArr.map(o => o.code);
let sortFn = function(property){
return function(a,b){
let aVal = a[property];
let bVal = b[property];
return originArrCode.indexOf(aVal) > originArrCode.indexOf(bVal) ? 1 : -1;
}
}
arr = arr.sort(sortFn('code'))
console.log(arr);
最终结果
JS中文排序方法
可以尝试使用方式
var arr2 = arr.sort(function(a,b){
return a.localeCompare(b)
})
如果中文排序不是我们想要的,可以尝试这样处理
var arr2 = arr.sort(function(a,b){
return a.localeCompare(b,'zh-CN')
})
JS排序函数使用三目运算写法
this.Array().sort(function(a,b){
return a > b ? 1 : -1;
})
当返回负数-1,排序认为a在b之前,排序结果为[a,b]; 当返回负数1,排序认为b在a之前,排序结果为[b,a];