编程初学者如果基础比较薄弱的话,可能会对「二维数组」完全没概念。
二维数组其实就是「数组套数组」,即「每个元素都是数组」的数组。
这么说可能有些绕口,还是直接上图吧:
const arr = [1, 2, 3, 4, 5]
这个数组在逻辑上的分布是这样的:
像上图这样,数组的元素是数字而非数组。整个数组的结构看上去就像「一条线」,这就是「一维数组」。
而「每个元素都是数组的数组」,对应的代码长这样:
const arr = [ [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5] ]
把它的逻辑结构画出来,是这样:
图中,每一行就代表着一个数组元素,比如第0行,代表着数组中arr[0]这个元素,其内容是[1,2,3,4,5]
。
每一行中的每一列,都代表一个确切的「坑」。比如第 0 行第 1 列,就代表着数组中 arr[0][1] 这个元素,其值为2
。
从形状上看,一维数组像一条「线」,而二维数组像一个「面」。
拿上面这个二维数组的例子来说,它的逻辑分布图就像一个「正方形」。当然了,二维数组的逻辑分布图也可以是「矩形」,因为行列数并不一定都是相等的。
在数学中,形如这样长方阵列排列的复数或实数集合,被称为「矩阵」。
其实,二维数组的别名就叫「矩阵」。
我们在做算法题目的时候,见到「矩阵」,要能够立刻反应出来它说的是「二维数组」。