【问题标题】:Two dimensional Array insert an column Javascript二维数组插入一列Javascript
【发布时间】:2021-07-29 00:14:54
【问题描述】:

我有一个问题,我想在二维数组中的所有行中添加一列。例如:

var arr = [["Tom",456],["Peter",756],["Sara",348]];

var arr_1 = ["USA","GERMANY",AUSTRIA"];

将此数组匹配到:

[["Tom",456,"USA"],["Peter",756,"GERMANY"],["Sara",348,"AUSTRIA"]];

你有带循环或匹配函数的解决方案吗?

【问题讨论】:

  • 使用循环和push() 将一个数组的元素附加到另一个数组的嵌套数组中。
  • 欢迎来到 Stack Overflow! StackOverflow 不是免费的编码服务。你应该try to solve the problem first。请更新您的问题以在minimal reproducible example 中显示您已经尝试过的内容。如需更多信息,请参阅How to Ask,并拨打tour :)
  • 你想要一个新的数组还是用给定的数组保留给定的数组?

标签: javascript arrays loops sorting add


【解决方案1】:
arr.forEach((item, index) => item.push(arr_1[index]));
console.log(arr);

如果两个数组中的元素数量相同,并且在长度不相等时填充未定义的孔,则无关紧要。

为避免数组中未定义,在推送前添加检查。

【讨论】:

    【解决方案2】:

    试试这个:

    const mapToNewArray = (arr, arrTwo) => {
        return arr.map((elem, index) => { elem.push(arrTwo[index]); return elem; });
    }
    
    let newArray = mapToNewArray(arr, arr_1);
    

    将两个数组都传递给函数。在第一个数组上运行 .map() 并跟踪索引。从第二个数组中选择对应的元素(基于索引)并将其推送到第一个数组的当前元素。

    【讨论】:

      【解决方案3】:

      在 JavaScript 中有很多方法可以遍历数组:https://www.codespot.org/ways-to-loop-through-an-array-in-javascript/

      也许最容易理解的方法是:

      var arr = [["Tom",456],["Peter",756],["Sara",348]];
      
      var arr_1 = ["USA","GERMANY","AUSTRIA"];
      
      for (let i = 0; i < arr.length; i++) { 
          arr[i].push(arr_1[i]);
      }
      

      【讨论】:

        【解决方案4】:

        你可以这样做:

        
        function addColumn(array, column) {
        
        for (let i = 0; i < array.length; i++) {
          // extra check if corresponding item is present in column by index
          if (column[i]) {
           array[i].push(column[i]);
          }
        }
        
        return array;
        
        }
        
        var arr = [["Tom",456],["Peter",756],["Sara",348]];
        var arr_1 = ["USA","GERMANY","AUSTRIA"];
        
        addColumn(arr, arr_1);
        
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-07-30
          • 1970-01-01
          • 2015-07-28
          • 2021-02-06
          • 1970-01-01
          • 2021-03-18
          • 1970-01-01
          • 2015-07-04
          相关资源
          最近更新 更多