[3 ,0 ,0, 2 ,0 ,1]
getSpanArr(tableData) {
for (var i = 0; i < tableData.length; i++) {
if (i === 0) {
// 第一行的不动
this.spanArr.push(1);
this.pos = 0;
} else {
// 判断当前元素与上一个元素是否相同
if (tableData[i].yearDate === tableData[i - 1].yearDate) {
// console.log(this.pos,"this.pos")
this.spanArr[this.pos] += 1;
this.spanArr.push(0);
} else {
this.spanArr.push(1);
this.pos = i;
}
}
}
console.log('这是this.spanArr',this.spanArr);
console.log('这是pos',this.pos);
}
解析:
这个函数内的循环 执行打印的数组为:
[1]
[2,0]
[3,0,0]
[3,0,0,1]
[3,0,0,2,0]
[3,0,0,2,0,1]
// 获取合并的数组
getSpanArr(tableData) {
for (var i = 0; i < tableData.length; i++) {
if (i === 0) {
// 第一行的不动
this.spanArr.push(1);
this.pos = 0;
} else {
// 判断当前元素与上一个元素是否相同
if (tableData[i].yearDate === tableData[i - 1].yearDate) {
// console.log(this.pos,"this.pos")
this.spanArr[this.pos] += 1;
this.spanArr.push(0);
} else {
this.spanArr.push(1);
this.pos = i;
}
}
}
console.log('这是this.spanArr',this.spanArr);
console.log('这是pos',this.pos);
},
// 年份合并
arraySpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
const _row = this.spanArr[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
rowspan: _row,
colspan: _col,
};
}
},
解析:
当是0行0列的时候
返回this.spanArr[0]为3
则返回{3,1}
当是1行0列的时候
返回this.spanArr[1]为0
则返回{0,0}
效果如下
还有固定格式的合并:
合并效果如下:本来是个上面的三行N列的,合并成下面这个前面两列为一行的。(我希望看到这个的可以看懂哈哈哈)