重写es6中的concat函数

我有一个简单的函数,我试图用 es6 重写它,但我没有得到它


其中 arr1 和 arr2 是不同宽度的多维数组,即 arr1[0].length != arr2[0].length 但具有相同的长度


function conatArrAsColumns(arr1, arr2) {

  

//This works

  var result = arr1.map(function(row, i){

  return row.concat(arr2[i]);

  });

  

  

//This works

  var result = arr1.map((row, i) => {

  return row.concat(arr2[i]);

  });

  

  

 //This does not work

  var result = arr1.map((row) => {

  return row.concat(arr2);

  });

  


//This does not work

  var result = arr1.map(row => row.concat(arr2)));


  return result

}

我正在努力让它发挥作用


var result = arr1.map(row => row.concat(arr2)));


感谢您对此提供的任何帮助


www说
浏览 112回答 2
2回答

侃侃尔雅

您“有效”的尝试都使用索引,而无效的尝试则不使用索引。你“试图让它工作”的最后一个例子是正确的 - 你只是缺少索引:var result = arr1.map((row, i) => row.concat(arr2[i]));

慕婉清6462132

如果我理解正确,并且您想将两个数组合并为一个,可以使用扩展运算符:function conatArrAsColumns(arr1, arr2) {  const arr3 = [...arr1, arr2]  return arr3  }console.log(conatArrAsColumns([1,2,[1,2],3], [4,5,6,7,[8,9],10,11]))//will return [1,2,1,2,3,4,5,6,7,8,9,10,11]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript