按照以下步骤进行操作:
- 分离数据 :首先,将原始数据按照
username
为空和非空进行分类。 - 对非空表进行排序 :对非空表按照
username
进行升序排序。 - 合并表格:将空表和排序后的非空表合并,保证空表挂接在排序后的非空表后面。
- 赋值给
tableData
:将合并后的结果赋值给tableData
。 - 实现代码如下:
<template>
<el-table :data="tableData">
<el-table-column label="Username" prop="username"></el-table-column>
<el-table-column label="Other Data" prop="otherData"></el-table-column>
<!-- 其他列 -->
</el-table>
</template>
<script>
export default {
data() {
return {
// 原始数据(假设是从接口获取或定义的)
originalData: [
{ username: 'Alice', otherData: 'Data 1' },
{ username: '', otherData: 'Data 2' },
{ username: 'Bob', otherData: 'Data 3' },
{ username: '', otherData: 'Data 4' },
{ username: 'Charlie', otherData: 'Data 5' },
// ...更多数据
],
tableData: [] // 最终显示的表格数据
};
},
methods: {
processData() {
// 1. 分离空表和非空表
const emptyUsernameData = this.originalData.filter(item => item.username === '');
const nonEmptyUsernameData = this.originalData.filter(item => item.username !== '');
// 2. 对非空表按照 username 进行升序排序
const sortedNonEmptyData = nonEmptyUsernameData.sort((a, b) => {
return a.username.localeCompare(b.username);
});
// 3. 合并非空表和空表
this.tableData = [...sortedNonEmptyData, ...emptyUsernameData];
}
},
created() {
// 在组件加载时处理数据
this.processData();
}
};
</script>