在Javascript中镜像N x N邻接矩阵的一半

时间:2017-03-29 22:45:41

标签: javascript arrays multidimensional-array data-structures adjacency-matrix

我在数组的javascript数组中有一个N x N矩阵的一半,我需要得到这一半并在主对角线的另一侧“镜像”它。

这是一张更好地解释的图片:

Matrix

主对角线是红线,我的矩阵的上半部分也需要“放置”在红线下面,形成一个完整的矩阵。

数据结构如下:

var map = [ ["0","1","2","3"], ["0", "1", "2"], ["0","1"], ["0"] ];

内有列的行。

我经常在我的问题中插入已经尝试过的东西,但在这段时间我甚至无法找到如何开始。所以,如果我不提供更多信息,我会道歉。

1 个答案:

答案 0 :(得分:1)

这样做的一种方法是

var i = 0;
var j = 0;
var map = [ ["0","1","2","3"], ["0", "1", "2"], ["0","1"], ["0"] ];
var n = map.length;
var res = new Array(n);

for (i = 0; i < n; i++) {
  res[i] = new Array(n);
  for (j = 0; j < n - i; j++) {
    res[i][i+j] = map[i][j];
  }
}

for (i = 0; i < n; i++) {
  for (j = i + 1; j < n; j++) {
    res[j][i] = res[i][j];
  }
}

res将包含镜像数组