表格数据合并行

110 阅读1分钟

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');