封装一个活灵活现的原生JS排序,js按照拼音排序,js按照“数字-字符串-汉字拼音”排序,数组对象排序,数组排序微调即可
/*prop:要排序的数据对象里面的属性*/export function compare(prop){return function (obj1, obj2){let a = obj1[prop];let b = obj2[prop];var n = !isNaN(a - 0), n2 = !isNaN(b - 0);// 数字优先if (n &&...
·
/*
prop:要排序的数据对象里面的属性
*/
export function compare(prop){
return function (obj1, obj2){
let a = obj1[prop];
let b = obj2[prop];
var n = !isNaN(a - 0), n2 = !isNaN(b - 0);
// 数字优先
if (n && n2) {
return a - b;
} else if (n) {
return -1;
} else if (n2) {
return 1;
}
// 将含有汉字的使用localeCompare排序
var e = escape(a).indexOf("%u") > -1, e2 = escape(b).indexOf("%u") > -1
if (e && e2) {
return a.localeCompare(b);
} else if (e) {
return 1;
} else if (e2) {
return -1;
}
return a.localeCompare(b);
}
}
//调用:
import { compare } from '../common/func.js';
//tmpList 是 [{},{},{}]
tmpList.sort(compare('name')); //name 即 prop参数
参考地址:https://blog.csdn.net/qq_38652871/article/details/104042706
更多推荐
所有评论(0)