【问题标题】:Convert an array to a 2D array (Square matrix) in javascript在javascript中将数组转换为二维数组(方阵)
【发布时间】:2013-05-11 21:03:22
【问题描述】:

我在 javascript 中有一个小函数,我想将数组 A 拆分为二维数组。 我将用于方阵。显然,如果输入中有一个 2x2 的方阵,我希望它是 2x2,以此类推,对于 3x3 和。但是在阅读了第一行后我被卡住了。所以我的 arr 行被重复了。有没有人对如何正确读取下一行有任何想法。例如,可以说我确实有一个数组

A = [2,1,4,5,1,2,3,1,9]

然后我希望我的数组 arr 看起来像这样:

arr = [[2,1,4],[5,1,2],[3,1,9]]

这将在稍后用于计算矩阵的行列式。

function create2Darray(clname) {
  var A = document.getElementsByClassName(clname);
  var arr = new Array();
  var rows = Math.sqrt(A.length);
  for (var i = 0; i < rows; i++) {
    arr[i] = new Array();
    for (var j = 0; j < rows; j++) {
      arr[i][j] = A[j].value;
    }
  }
}

【问题讨论】:

    标签: javascript arrays 2d


    【解决方案1】:

    您总是分配相同的值。它应该是这样的:

    arr[i][j] = A[i*rows+j].value;
    

    编辑:这是一个没有 DOM 操作的完整函数(也就是说,A 是一个简单的整数数组):

    function create2Darray(A) {
      var arr = [];
      var rows = Math.sqrt(A.length);
      for (var i = 0; i < rows; i++) {
        arr[i] = [];
        for (var j = 0; j < rows; j++) {
          arr[i][j] = A[i * rows + j];
        }
      }
      return arr;
    }
    
    console.log(create2Darray([1, 2, 3, 4, 5, 6, 7, 8, 9]))

    【讨论】:

      猜你喜欢
      • 2021-07-20
      • 1970-01-01
      • 2011-05-28
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      相关资源
      最近更新 更多