可以通过定义一个顺序映射(权重表),然后按照权重来排序。
// 有数据data,根据name的值按照 M5 -> M4 -> M3 -> M2 -> P3 -> P2 -> P1 -> 不铨叙 -> 空 来排序
const data = [
{ "name": "P1", "value": 53 },
{ "name": "M2", "value": 5 },
{ "name": "P2", "value": 49 },
{ "name": "M3", "value": 9 },
{ "name": "P3", "value": 4 },
{ "name": "M4", "value": 2 },
{ "name": "M5", "value": 5 },
{ "name": "不铨叙", "value": 6 },
{ "name": "空", "value": 7 }
];
// 定义排序顺序(数值越小越靠前)
const orderMap = {
"M5": 1,
"M4": 2,
"M3": 3,
"M2": 4,
"P3": 5,
"P2": 6,
"P1": 7,
"不铨叙": 999,
"空": 1000
};
data.sort((a, b) => {
return (orderMap[a.name] || 9999) - (orderMap[b.name] || 9999);
});
console.log(data);
输出结果
M5 -> M4 -> M3 -> M2 -> P3 -> P2 -> P1 -> 不铨叙 -> 空
1827

被折叠的 条评论
为什么被折叠?



