二维数组是怎么表示的

  1. const array = [[0,0,1,0,0],[0,0,0,0,0],[0,0,0,1,0],[1,1,0,1,1],[0,0,0,0,0]]
  1. 0 0 1 0 0
  2. 0 0 0 0 0
  3. 0 0 0 1 0
  4. 1 1 0 1 1
  5. 0 0 0 0 0
  1. array[0] 表示这个表的第一行
  2. array[0][0] 表示这个表的第一行第一列

表的行数越往下越大,表的列数指越往右越大

三维数组

一维数组:[0,0,1,0,0]
二维数组:[[0,0,1,0,0],[0,0,0,0,0],[0,0,0,1,0],[1,1,0,1,1],[0,0,0,0,0]] 相当于把二维数组摞起来 array[0] 相当于取到最上层的一摞一维数组。
三维数组:相当于二维数组摞起来 array[0] 相当于取到最上层的一摞二维数组。

JS的二维数组的创建

错误方法:

  1. const array = new Array(maze.length).fill(new Array(maze[0].length).fill(false))

fill 方法会用同一个地址充满数组,这会导致修改一个地方导致很多地方都改变,所以只在填充原始值的时候使用 fill。

正确方法

  1. const visited = new Array(maze.length)
  2. for (let k = 0; k < maze.length; k++) {
  3. visited[k] = [];
  4. for (let j = 0; j < maze[0].length; j++) {
  5. visited[k][j] = false;
  6. }
  7. }