You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:18:00