如何更优地以(x, y)格式显示行列编号?
问题解答
现有方案的可行性
你的当前方案完全可行,逻辑清晰且能准确满足需求:
- 第一行固定生成2个
(1, x)格式的标签 - 第二、三行仅在对应变量有有效值时,才生成对应行的标签
- 最终输出的
labels数组完全符合行列编号的格式要求
更优实现方式
可以把行的配置统一整理成数组,通过一次遍历完成标签生成,这样代码更简洁,后续如果新增行也更容易扩展,不需要重复写相似的循环和判断逻辑:
const labels = []; // 整理行配置:[行号, 列数],列数为0/空字符串时会被自动过滤 const rowConfigs = [ [1, 2], // 第一行固定存在,2列 [2, rowSecond], // 第二行可能不存在 [3, rowThird] // 第三行可能不存在 ]; // 遍历配置数组生成标签 rowConfigs.forEach(([rowNum, colCount]) => { // 过滤无效的列数(空字符串、0等) if (Number(colCount) > 0) { for (let i = 0; i < colCount; i++) { labels.push(`(${rowNum}, ${i + 1})`); } } }); console.log('LABELS', labels);
优化点说明
- 把分散的行变量整合为配置数组,逻辑更集中,可读性更强
- 统一的遍历逻辑避免了重复代码,新增行只需在数组里加一项即可
- 通过
Number(colCount) > 0统一处理空字符串、0等无效值,判断更严谨
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

