如何实现乘法表仅在运算项之间添加|分隔符?
解决乘法表分隔符只在项间显示的问题
这问题我之前写类似输出逻辑的时候也踩过坑!要实现「只在乘法项之间加|分隔符,最后一项后面不加」的效果,有两个简单好用的办法,我给你一步步讲清楚:
方法一:用数组+join()方法(最简洁推荐)
数组的join()方法天生就是用来处理这种“元素间加分隔符”的场景——它只会在数组的元素之间插入指定的分隔符,完全不会在最后多添一笔。代码调整如下:
var n = 3; for (i = 1; i <= n; i++) { // 新建数组存储当前行的所有乘法表达式 const rowItems = []; for(j = 1; j <= n; j++) { // 把每个乘法项推进数组(注意你要的是`x`不是`*`,和示例统一) rowItems.push(`${i} x ${j} = ${i * j}`); } // 用" | "把数组元素连接成字符串,直接输出 console.log(rowItems.join(' | ')); }
运行这段代码就能得到你想要的效果:
1 x 1 = 1 | 1 x 2 = 2 | 1 x 3 = 3
2 x 1 = 2 | 2 x 2 = 4 | 2 x 3 = 6
3 x 1 = 3 | 3 x 2 = 6 | 3 x 3 = 9
方法二:条件判断控制分隔符添加
如果你不想用数组,也可以通过判断当前循环的j是否为最后一项,来决定要不要加分隔符。逻辑很直观:只有当j不是最后一个数(也就是j !== n)的时候,才在后面加|。
代码示例:
var n = 3; for (i = 1; i <= n; i++) { let result = ''; for(j = 1; j <= n; j++) { // 先添加当前乘法项 result += `${i} x ${j} = ${i * j}`; // 仅当不是最后一项时,添加分隔符 if (j !== n) { result += ' | '; } } console.log(result); }
这个方法不需要额外的数据结构,直接在字符串拼接时做判断,适合简单场景。
内容的提问来源于stack exchange,提问作者sosick
相关产品推荐
相关产品推荐

