无法理解什么是Javascript新数组(新数组(5,4,3,2,1,0),新数组())
请告诉我这段代码在做什么,它是在创建多维数组吗(我认为它不是) 代码段无法理解什么是Javascript新数组(新数组(5,4,3,2,1,0),新数组()),javascript,arrays,Javascript,Arrays,请告诉我这段代码在做什么,它是在创建多维数组吗(我认为它不是) 代码段 var hanoi_peg = new Array( new Array( 5, 4, 3, 2, 1, 0 ), new Array( -1, -1, -1, -1, -1, -1 ), new Array( -1, -1, -1, -1, -1, -1 ) ); 谢谢..将其登录到您的控制台,您将看到它创建了一个阵列阵列,并用于相同的目的 var hanoi\u peg=新数组( 新
var hanoi_peg = new Array(
new Array( 5, 4, 3, 2, 1, 0 ),
new Array( -1, -1, -1, -1, -1, -1 ),
new Array( -1, -1, -1, -1, -1, -1 )
);
谢谢..将其登录到您的控制台,您将看到它创建了一个阵列阵列,并用于相同的目的
var hanoi\u peg=新数组(
新阵列(5,4,3,2,1,0),
新数组(-1,-1,-1,-1,-1,-1),
新数组(-1,-1,-1,-1,-1,-1)
);
控制台日志(hanoi_peg)代码>将其登录到您的控制台中,您将看到它创建了一个数组数组,并用于相同的目的
var hanoi\u peg=新数组(
新阵列(5,4,3,2,1,0),
新数组(-1,-1,-1,-1,-1,-1),
新数组(-1,-1,-1,-1,-1,-1)
);
控制台日志(hanoi_peg)代码>它正在创建一个数组数组。这与多维数组并不完全相同,但其用途类似
例如,通过执行以下操作可以获得值3:
console.log(hanoi_peg[0][2]);
通常使用数组文字表示法:
var hanoi_peg = [
[ 5, 4, 3, 2, 1, 0 ],
[ -1, -1, -1, -1, -1, -1 ],
[ -1, -1, -1, -1, -1, -1 ]
];
数组数组和多维数组之间的区别在于数组数组不存储在单个连续的内存块中,因此可能是锯齿状的;第二级中的数组不必都具有相同数量的元素。例如,这是完全正确的:
var a = [
[1, 2, 3, 4, 5],
[1, 2, 3],
[1, 2, 3, 4, 5, 6]
];
在一个真正的多维数组中,有一个连续的内存块(实际上是一个大的一维数组),编译器/运行时只是对索引进行数学运算,以找到正确的插槽。例如,一个真正的5x5多维数组将是一个25个插槽的连续集合,当您在[2][4]
处请求条目时,编译器/运行时将其转换为[(2*5)+4]
,并返回插槽索引14的内容
但是对于数组数组,[2][4]
是两种不同的操作:首先,获取[2]
处的条目,这是对数组的引用;然后从该数组中获取[4]
处的条目。它正在创建一个数组数组。这与多维数组并不完全相同,但其用途类似
例如,通过执行以下操作可以获得值3:
console.log(hanoi_peg[0][2]);
通常使用数组文字表示法:
var hanoi_peg = [
[ 5, 4, 3, 2, 1, 0 ],
[ -1, -1, -1, -1, -1, -1 ],
[ -1, -1, -1, -1, -1, -1 ]
];
数组数组和多维数组之间的区别在于数组数组不存储在单个连续的内存块中,因此可能是锯齿状的;第二级中的数组不必都具有相同数量的元素。例如,这是完全正确的:
var a = [
[1, 2, 3, 4, 5],
[1, 2, 3],
[1, 2, 3, 4, 5, 6]
];
在一个真正的多维数组中,有一个连续的内存块(实际上是一个大的一维数组),编译器/运行时只是对索引进行数学运算,以找到正确的插槽。例如,一个真正的5x5多维数组将是一个25个插槽的连续集合,当您在[2][4]
处请求条目时,编译器/运行时将其转换为[(2*5)+4]
,并返回插槽索引14的内容
但是对于数组数组,[2][4]
是两种不同的操作:首先,获取[2]
处的条目,这是对数组的引用;然后从该数组中获取[4]
处的条目。它创建了一个数组数组
new Array()
将返回新的数组对象。数组有2个重写的构造函数
new Array(length)
这将返回一个指定长度的数组,其中所有元素都设置为未定义
。注意,只有当长度为整数时才会发生这种情况。如果您尝试新建数组('str')
,将返回['str']
。如果执行新数组(2.5)
,它将抛出错误,因为参数是数字而不是整数
new Array(element list)
这将创建一个包含上述元素的数组
因此,当您执行新数组(新数组(1,2,3))
时,新数组(1,2,3)
将首先执行返回[1,2,3]
,然后执行新数组([1,2,3])
返回[[1,2,3]
var hanoi\u peg=新数组(
新阵列(5,4,3,2,1,0),
新数组(-1,-1,-1,-1,-1,-1),
新数组(-1,-1,-1,-1,-1,-1)
);
控制台日志(hanoi_peg);
log(新数组('str'))
它正在创建一个数组数组
new Array()
将返回新的数组对象。数组有2个重写的构造函数
new Array(length)
这将返回一个指定长度的数组,其中所有元素都设置为未定义
。注意,只有当长度为整数时才会发生这种情况。如果您尝试新建数组('str')
,将返回['str']
。如果执行新数组(2.5)
,它将抛出错误,因为参数是数字而不是整数
new Array(element list)
这将创建一个包含上述元素的数组
因此,当您执行新数组(新数组(1,2,3))
时,新数组(1,2,3)
将首先执行返回[1,2,3]
,然后执行新数组([1,2,3])
返回[[1,2,3]
var hanoi\u peg=新数组(
新阵列(5,4,3,2,1,0),
新数组(-1,-1,-1,-1,-1,-1),
新数组(-1,-1,-1,-1,-1,-1)
);
控制台日志(hanoi_peg);
log(新数组('str'))
您的代码如下
//定义数组
var hanoi_peg=[];
//定义第一个元素及其数组
河内peg[0]=[5,4,3,2,1,0];
//定义第二个元素及其数组
河内peg[1]=[-1,-1,-1,-1,-1];
//定义第三个元素及其数组
河内peg[2]=[-1,-1,-1,-1,-1];
log(“完整数组:+JSON.stringify(hanoi_-peg));
/*
[
[5, 4, 3, 2, 1, 0],
[-1, -1, -1, -1, -1, -1],
[-1, -1, -1, -1, -1, -1]
]
*/
log(“数组的第一个元素:”,hanoi_peg[0])//[5, 4, 3, 2, 1, 0];
console.log(“fi