我正在阅读一本关于JavaScript的书籍,看到了这行代码:
JavaScript不支持真正的多维数组,但你可以使用数组的数组来近似它们。
有什么区别?
我正在阅读一本关于JavaScript的书籍,看到了这行代码:
JavaScript不支持真正的多维数组,但你可以使用数组的数组来近似它们。
有什么区别?
一个真正的多维数组必须使用多个索引进行索引。而一个由若干个数组组成的数组可以使用单个索引进行索引,它将返回另一个数组。一个真正的多维数组存储所有数据都是连续的。而一个由若干个数组组成的数组存储其所有组成数组是任意散布的。这可以通过对真正数组的缓存效应来提高迭代性能。
int[3, 4] // true two-dimensional array
// it will "look" like this, rectangular shape
[[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]]
但当你定义一个数组的数组时,它很容易就像这样(尤其是在javascript中)。它被称为不规则数组。
[[0, 0]
[0, 0, 0, 0, 0, 0]
[0, 0, 0]]
JavaScript中没有类似于...
var arr = new Array[5][3]; /* Some weird JS/C-like thing for demonstration */
...具有强制长度的数组,就像矩阵一样。
但是,您可以构建一个Array
,其中其成员都是固定长度的Array
。如果其中一个子Array
具有不同的长度,则它将成为不规则Array
。
是数组;
按值存储,而不是按引用存储;
具有相同的长度。
var items = [[1,2],[3,4],[5,6]];
alert(items[0][0]); // Would alert 1
Javascript中的一维数组。
var a = [0, 1, 2, 3];
a[[2]] === a[2]; // this is true
2 == [2] //true
// Even complex
2 == [[[2]]] //true
// And even more
var a = { "xyz" : 1 };
a[[[["xyz"]]]] === a["xyz"]; //true
[][]
数组保证是连续的。 - dmckee --- ex-moderator kitten