element-plus 表格 tableData 对某一列信息去重分组
时间: 2023-07-22 07:23:04 浏览: 110
您可以使用 JavaScript 的 `reduce` 方法和 `Set` 对数据进行分组和去重。方法是先使用 `reduce` 方法将数据根据某一列进行分组,然后对每一组数据使用 `Set` 对象进行去重。
以下是一个示例代码,演示如何对表格数据按照 `age` 列进行分组,并对每一组数据的 `name` 列进行去重:
```html
<template>
<div>
<el-table :data="groupedData">
<el-table-column prop="age" label="年龄"></el-table-column>
<el-table-column prop="names" label="姓名"></el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
{ name: '张三', age: 18, gender: '男' },
{ name: '李四', age: 20, gender: '女' },
{ name: '王五', age: 22, gender: '男' },
{ name: '赵六', age: 18, gender: '女' },
{ name: '钱七', age: 22, gender: '男' }
]
}
},
computed: {
groupedData() {
const groups = this.tableData.reduce((groups, item) => {
const age = item.age;
if (!groups[age]) {
groups[age] = [];
}
groups[age].push(item);
return groups;
}, {});
return Object.keys(groups).map(age => {
const names = [...new Set(groups[age].map(item => item.name))];
return {
age,
names
};
});
}
}
}
</script>
```
在上面的代码中,我们使用了 `reduce` 方法对表格数据进行分组,然后对每一组数据使用 `Set` 对象进行去重。最后,我们使用 `map` 方法将分组后的数据转换成 `el-table` 组件可以接受的格式。
需要注意的是,如果您的数据量较大,可能会导致性能问题。在这种情况下,您可以考虑在后端进行数据分组和去重,然后将结果传递给前端。
阅读全文