key是要合并的列的字段
const createNewArr = (data, key) => {
return data
.reduce((result, item) => {
if (result.indexOf(item[key]) < 0) {
result.push(item[key]);
}
return result;
}, [])
.reduce((result, value) => {
const children = data.filter((item) => item[key] === value);
result = result.concat(
children.map((item, index) => ({
...item,
rowSpan: index === 0 ? children.length : 0,
})),
);
return result;
}, []);
};
使用时直接调用方法就可以了 dataSource.value = createNewArr(dataSource.value, 'name');