如何在Javascript中创建一个空的2D数组(不知道新数组中将有多少行或列)?
如果它是一个简单的数组,var newArray = new Array();我可以分配尽可能多的元素.但是2D阵列怎么样?我可以创建一个而不指定行数和列数吗?以及如何在(myArray[0][1]或myArray[0,1])之后访问元素?
And*_*dré 51
你可以像这样创建一个6 x 6的空数组:
var myGrid = [...Array(6)].map(e => Array(6));
Run Code Online (Sandbox Code Playgroud)
Array(6)生成一个长度= 6且undefined值为满的数组.undefined值的数组.undefined位置.如果需要使用默认值初始化网格:
var value = 'foo'; // by default
var myGrid = [...Array(6)].map(e => Array(6).fill(value));
Run Code Online (Sandbox Code Playgroud)
现在你有一个6 x 6网格'foo'.
Sia*_*agh 21
是的,您可以创建一个空数组,然后将数据推入其中.无需在JavaScript中首先定义长度.
查看jsFiddle现场演示
定义:
var arr = [[],[]];
Run Code Online (Sandbox Code Playgroud)
推送数据:
arr[0][2] = 'Hi Mr.A';
arr[1][3] = 'Hi Mr.B';
Run Code Online (Sandbox Code Playgroud)
读取数据:
alert(arr[0][2]);
alert(arr[1][3]);
Run Code Online (Sandbox Code Playgroud)
Guf*_*ffa 13
Javascript中没有二维数组.
要实现二维数组的效果,可以使用数组数组,也称为锯齿数组(因为内部数组可以具有不同的长度).
像任何其他空数组一样创建一个空的锯齿状数组:
var myArray = new Array();
Run Code Online (Sandbox Code Playgroud)
您还可以使用空数组文字:
var myArray = [];
Run Code Online (Sandbox Code Playgroud)
要将任何项放入锯齿状数组中,首先必须将内部数组放入其中,例如:
myArray.push([]);
myArray[0][0] = 'hello';
Run Code Online (Sandbox Code Playgroud)
您还可以从start创建一个包含许多空数组的数组:
var myArray = [[],[],[]];
Run Code Online (Sandbox Code Playgroud)
这给你一个没有任何项目的锯齿状数组,但是它准备了三个内部数组.
由于它是一个数组数组,您可以使用它来访问这些项目myArray[0][1].
假设您想制作一个100x100的二维数组(即矩阵),您可以在一行中完成,如下所示:
__CODE__
这将创建一个100x100的NULL矩阵.将100x100替换为您想要的任何尺寸,将null替换为您喜欢的任何默认值,或者将null替换为undefined.
| 归档时间: |
|
| 查看次数: |
66419 次 |
| 最近记录: |