功能描述
当 const mergeTable=[2]时,
函数返回
{ rowSpan: 2 }
{ rowSpan: 0 }
当 const mergeTable=[2,3]时,函数返回
{ rowSpan: 2 }
{ rowSpan: 0 }
{ rowSpan: 3 }
{ rowSpan: 0 }
{ rowSpan: 0 }
当const mergeTable=[2,3,3,2]函数返回
{ rowSpan: 2 }
{ rowSpan: 0 }
{ rowSpan: 3 }
{ rowSpan: 0 }
{ rowSpan: 0 }
{ rowSpan: 3 }
{ rowSpan: 0 }
{ rowSpan: 0 }
{ rowSpan: 2 }
{ rowSpan: 0 }
需要优化的函数
功能已经实现,代码冗余,请问如何优化
// const mergeTable=[2] // 测试 ok
const mergeTable = [2, 3]; // 测试ok
// const mergeTable=[2,3,3,2]; // 测试ok
// 如何简化这个函数
function renderRowSpan(index) {
for (let i in mergeTable) {
i=Number(i);
if (i === 0) {
if (index === 0) {
return { rowSpan: mergeTable[0] };
} else if (index < mergeTable[0]) {
return { rowSpan: 0 };
}
}
if (i === 1) {
if (index === mergeTable[0]) {
return { rowSpan: mergeTable[1] };
}
if (index < mergeTable[0] + mergeTable[1]) {
return { rowSpan: 0 };
}
}
if (i === 2) {
if (index === mergeTable[0] + mergeTable[1]) {
return { rowSpan: mergeTable[2] };
}
if (index < mergeTable[0] + mergeTable[1] + mergeTable[2]) {
return { rowSpan: 0 };
}
}
if (i === 3) {
if (index === mergeTable[0] + mergeTable[1]+mergeTable[2]) {
return { rowSpan: mergeTable[3] };
}
if (index < mergeTable[0] + mergeTable[1] + mergeTable[2]+ mergeTable[3]) {
return { rowSpan: 0 };
}
}
}
}
// 外部方法会渲染index
for (let index = 0; index < 10; index++) {
console.log(renderRowSpan(index));
}