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

如何用JavaScript从9x9二维数组提取3x3块并转为逗号分隔字符串

实现思路
  • 9x9二维数组的3x3独立子块共9个,按从上到下、从左到右的顺序遍历即可。我们可以先定位每个子块的左上角起始坐标:行起始坐标为blockRow * 3,列起始坐标为blockCol * 3,其中blockRow和blockCol的取值范围都是0~2
  • 对每个定位到的子块,遍历内部3行3列的所有元素,按顺序拼接为字符串
  • 最后把所有子块的字符串用逗号拼接得到最终结果
代码实现
function get3x3BlocksStr(arr) {
  const blockStrs = [];
  // 遍历子块的行分组
  for (let blockRow = 0; blockRow < 3; blockRow++) {
    // 遍历子块的列分组
    for (let blockCol = 0; blockCol < 3; blockCol++) {
      let currentStr = '';
      // 遍历当前子块内的3行
      for (let i = 0; i < 3; i++) {
        const rowIndex = blockRow * 3 + i;
        // 遍历当前子块内的3列
        for (let j = 0; j < 3; j++) {
          const colIndex = blockCol * 3 + j;
          currentStr += arr[rowIndex][colIndex];
        }
      }
      blockStrs.push(currentStr);
    }
  }
  return blockStrs.join(',');
}

// 测试用例
const twoDArray = [
  [5, 3, 5, 6, 7, 8, 9, 1, 2],
  [6, 7, 1, 1, 9, 5, 3, 4, 8],
  [1, 9, 2, 3, 4, 2, 5, 6, 7],
  [8, 5, 9, 7, 6, 1, 4, 2, 3],
  [4, 2, 6, 5, 5, 3, 7, 9, 1],
  [7, 1, 3, 1, 2, 4, 8, 5, 6],
  [9, 6, 1, 5, 3, 7, 2, 8, 4],
  [2, 8, 7, 5, 1, 9, 6, 3, 5],
  [3, 4, 5, 6, 8, 6, 1, 7, 9]
];

console.log(get3x3BlocksStr(twoDArray));
输出说明

上述测试代码运行后输出结果为:
535671192,678195342,912348567,859426713,761553124,423791856,961287345,537519686,284635179
完全匹配需求的格式要求。

内容的提问来源于stack exchange,提问作者TheObands

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 13:45:01