use*_*265 -1 javascript arrays
如何创建长度为3的数组,并且数组元素的值为0.如果我将数组的长度设为3,则数组应如下所示
a[0]=0;
a[1]=0;
a[2]=0;
Run Code Online (Sandbox Code Playgroud)
我试过这个new Array(3),它创建了一个a[,,,]长度为3 new Array(0,0,0)的数组并创建了一个数组a[0,1,2],是否可以通过定义数组元素的长度和值来创建数组?
提前致谢
是否可以通过定义数组元素的长度和值来创建数组?
如果你的意思是,某种预初始化构造函数或填充操作,不,JavaScript没有那个.
如果您知道在编写代码时需要三个元素,则可以执行以下操作:
a = [0, 0, 0];
Run Code Online (Sandbox Code Playgroud)
它被称为数组初始化器.
如果您事先并不知道(例如,在编写代码时)数组应该有多大,您可以根据需要填写它:
a = [];
var index;
for (index = 0; index < initialSize; ++index) {
a[index] = 0;
}
Run Code Online (Sandbox Code Playgroud)
请注意,您不必在阵列中预先分配空间; 数组可以根据需要"增长".(这可能看起来很奇怪,但标准JavaScript数组根本不是真正的数组,尽管JavaScript引擎会经常尝试使用真正的数组作为优化,如果他们认为可以的话.)
但是如果你愿意,你可以通过使用以下方式预先告诉引擎引擎你想要的长度:
a = new Array(initialSize);
Run Code Online (Sandbox Code Playgroud)
......而不是a = [];上面.(接近结尾的更多内容.)
如果您愿意,可以向Array函数对象添加一个函数来执行此操作:
Array.createFilled(length, value) {
var a = new Array(length); // Or of course, `var a = [];`
var i;
for (i = 0; i < length; ++i) {
a[i] = value;
}
return a;
}
Run Code Online (Sandbox Code Playgroud)
然后在各个地方使用它,你想要一个预先填充的数组:
var a = Array.createFilled(3, 0); // 0,0,0
Run Code Online (Sandbox Code Playgroud)
附注:始终确保声明您的变量,例如,var a;在上面的行之前的某处.
显然,提前告诉引擎阵列的大小应该让它做更好的优化,对吧?不必要!它可能会帮助一些引擎(一点点),阻碍其他引擎(一点点),和/或没有区别:

| 归档时间: |
|
| 查看次数: |
203 次 |
| 最近记录: |