1.需求
很多时候,后台返回的数据应用到表格中,展示出列的先后顺序可能与期望的不一致,这时候可以对列数组进行重新排序。
2.原理
创建一个数组来定义优先级,然后根据这个优先级对原数组进行排序
3.代码实现
let array = [
{ label: "序号", prop: "Id", isVisable: true },
{ label: "设备号", prop: "EquipName" },
{ label: "故障描述", prop: "FaultContent" },
{ label: "时间", prop: "Time" },
{ label: "状态", prop: "Status" }
];
// 定义优先级数组
const priorityOrder = ["EquipName", "Time", "Status"];
// 使用 sort 方法进行排序
array.sort((a, b) => {
const indexA = priorityOrder.indexOf(a.prop);
const indexB = priorityOrder.indexOf(b.prop);
// 如果在优先级数组中找到,返回相应的索引
// 如果找不到,则认为它的优先级最低
if (indexA === -1 && indexB === -1) return 0; // 都不在优先级中,保持顺序
if (indexA === -1) return 1; // a 在 b 后面
if (indexB === -1) return -1; // b 在 a 后面
return indexA - indexB; // 根据索引排序
});
console.log(array);