如何将JavaScript数字矩阵/二维数组转换为极简格式化字符串
Node.js 极简矩阵格式化打印实现
核心实现逻辑如下:
- 先遍历矩阵计算每一列元素的最大字符长度,作为该列的统一对齐宽度
- 逐行格式化每个元素,按对应列宽补空格对齐后拼接,行之间用换行符分隔,最终得到完整的格式化字符串
完整实现代码
function formatMatrix(matrix, separator = ' ') { // 处理空矩阵边界情况 if (!matrix.length || !matrix[0].length) return '' const colCount = matrix[0].length // 存储每列的最大宽度 const colWidths = new Array(colCount).fill(0) // 遍历计算每列最大宽度 matrix.forEach(row => { row.forEach((value, colIndex) => { const valueLength = String(value).length if (valueLength > colWidths[colIndex]) { colWidths[colIndex] = valueLength } }) }) // 逐行格式化拼接 return matrix.map(row => { return row.map((value, colIndex) => { // 左对齐补空格,如需右对齐可替换为padStart return String(value).padEnd(colWidths[colIndex], ' ') }).join(separator) }).join('\n') }
使用示例
const matrix = [ [1, 2, 3], [4, 555, 6], [7, 8, 9] ] // 用空格作为分隔符 const formattedStr = formatMatrix(matrix) console.log(formattedStr) // 自定义用逗号+空格作为分隔符 // const formattedStr = formatMatrix(matrix, ', ')
输出效果
1 2 3 4 555 6 7 8 9
可调整配置
- 如需右对齐,将代码中的
padEnd替换为padStart即可 - 第二个参数可自定义元素之间的分隔符,支持制表符
\t、逗号等任意字符
内容的提问来源于stack exchange,提问作者Nermin
相关产品推荐
相关产品推荐

