【问题标题】:Append Multi-Dimension Arrays Horizontally in Blocks在块中水平附加多维数组
【发布时间】:2019-01-12 12:57:38
【问题描述】:

我有几个多维数组,我希望水平连接它们。将多维数组视为表格,我想通过水平堆叠它们来附加每个数组。

我尝试使用地图和嵌套地图,但无法完全按照描述的方式工作。

var arr1 = [["A1","B1","C1","D1"],["A2","B2","C2","D2"]]
var arr2 = [["E1","F1","G1","H1"],["E2","F2","G2","H2"]]

如何将它们合并到一个输出将是的数组中

var arrMerged = [["A1","B1","C1","D1","E1","F1","G1","H1"],["A2","B2","C2","D2","E2","F2","G2","H2"]]

【问题讨论】:

  • 你已经尝试了什么?
  • 你应该尝试准备好this
  • 你说你试过map。将该代码添加到您的问题中,以便我们对其进行评估。

标签: javascript multidimensional-array


【解决方案1】:

这是带有map 的版本。

const arr1 = [["A1","B1","C1","D1"],["A2","B2","C2","D2"]]
const arr2 = [["E1","F1","G1","H1"],["E2","F2","G2","H2"]];

const out = arr1.map((arr, i) => {
  return arr.concat(arr2[i]);
});

console.log(out);

【讨论】:

    【解决方案2】:

    您可以使用 Array.push 和 spread 语法来实现您的解决方案。

    var arr1 = [["A1","B1","C1","D1"],["A2","B2","C2","D2"]]
    var arr2 = [["E1","F1","G1","H1"],["E2","F2","G2","H2"]]
    const output = []
    // if you know the maximum length you can provide yourself instead of Math.max(arr1.length, arr2.length)
    for(let i =0; i < Math.max(arr1.length, arr2.length); i++){
        //This will work even with different lengths of array
    	output.push([...(arr1[i] || []), ...(arr2[i] || [])])
    }
    console.log(output)

    P.S.:您可以使用其他方法,例如 map 和 reduce,但我使用的是 for 循环,因为在 map 的情况下,所有数组的长度应该相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 2018-03-31
      • 2018-04-27
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多