/*
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

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐