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

JavaScript二维数组拼接函数问题求助及解决方法

问题:JavaScript矩阵拼接函数实现错误排查

我是JavaScript新手,需要帮助找到函数正确实现方案:

我的代码如下:

function concatenateMatrix(matrix) { } 
var stringMatrix = [ ['H', 'e', 'l', 'l', 'o'], [' ', 'J', 'a', 'v', 'a'], ['W', 'o', 'r', 'l', 'd', '!'] ]; 
var matrix = ''; 
newArray = []; 
for (var i = 0; i < stringMatrix.length; i++) { 
  for (var j = 0; j < stringMatrix[i].length; j++); 
  newArray.push(stringMatrix); 
  stringMatrix = ''; 
} 
console.log(concatenateMatrix(stringMatrix))

预期输出为Hello , Java World!,请问我的代码哪里出错了?非常感谢。


你的代码问题拆解

咱们一步一步捋下问题出在哪:

  • 你定义了concatenateMatrix函数但完全没写实现逻辑,最后却调用它,这肯定出不来结果呀。
  • 外层循环里的内层循环后面多了个分号;,这相当于内层循环是空的,根本没执行任何字符处理操作。
  • 你把整个原数组stringMatrix直接push进newArray,而不是把每一行的字符拼接成字符串,之后还把stringMatrix直接赋值为空字符串,原数据都被你清空了。
  • 最后调用函数时传入的是已经被清空的stringMatrix,参数本身就是错的。

你自己的可行解决方案(已解决)

你后来给出的实现逻辑是没问题的,整理成完整可运行的函数版本是这样:

function concatenateMatrix(matrix) {
  for (var x in matrix) {
    if (matrix[x] instanceof Array) {
      matrix[x] = matrix[x].join("");
    }
  }
  return matrix.join("");
}

var stringMatrix = [ ['H', 'e', 'l', 'l', 'o'], [' ', 'J', 'a', 'v', 'a'], ['W', 'o', 'r', 'l', 'd', '!'] ];
console.log(concatenateMatrix(stringMatrix)); // 输出:Hello , Java World!

其实还可以用更简洁的写法,用map方法一步到位:

function concatenateMatrix(matrix) {
  return matrix.map(row => row.join('')).join('');
}

这个写法先把每一行数组拼接成单个字符串,再把所有行的字符串拼接起来,逻辑更清晰,也更符合现代JavaScript的写法习惯。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:14:43