Javascript 在按大小排列的数组中推送一个元素时,数组大小是动态增长的,为什么?

Javascript 在按大小排列的数组中推送一个元素时,数组大小是动态增长的,为什么?,javascript,Javascript,我试图将字符串元素推送到大小数组,但推送元素时,大小数组开始在数组的最后一个索引中插入元素并增长,但我想在索引[0]中插入第一个元素,在[1]上插入第二个元素,依此类推,直到索引[3]但我不知道为什么它开始在最后一个索引后插入元素,并在我的代码中添加更多元素时增长: var users = new Array(3); users.push(someData); console.log(users); console.log(users.length) 结果是这样的: var users = n

我试图将字符串元素推送到大小数组,但推送元素时,大小数组开始在数组的最后一个索引中插入元素并增长,但我想在索引[0]中插入第一个元素,在[1]上插入第二个元素,依此类推,直到索引[3]但我不知道为什么它开始在最后一个索引后插入元素,并在我的代码中添加更多元素时增长:

var users = new Array(3);
users.push(someData);
console.log(users);
console.log(users.length)
结果是这样的:

var users = new Array()
[,'d','dd']

5

避免使用
新数组(计数)
。只需创建一个空数组,然后按如下方式推送:

var users = [];
users.push(someData);
或者,如果您有一些初始静态内容,这会更好:

var users = [ someData ];
我建议您避免使用
新数组(…)
的原因是,它可能会令人困惑且容易出错:

  • 新数组(3)
    将创建一个包含3项的数组:
    [未定义,未定义,未定义]
  • 新数组(3,4)
    将创建一个数组,其中包含
    3
    4
    [3,4]

array.push()
数组的方法从数组的最后一个索引插入元素。使用
array.unshift()。没有最大尺寸。只需按如下方式创建阵列:

var users = new Array()


Push将新元素添加到数组的末尾。创建包含三个空条目的数组,然后将something推到末尾。Javascript没有大小有限的数组。在你的例子中,我猜你想创建一个空数组,只需按一下就可以了。

因为在javascript中,“var users=new Array(3);”意味着创建一个包含3个未定义元素的数组


有关基本数组初始化的详细信息,请参阅:

当您使用构造函数创建数组并指定一个大小时,该大小将只设置数组的当前长度,而不会限制数组的大小

这样做:

var users = new Array(3);
users.push(someData);
做与此完全相同的事情:

var users = new Array();
users.length = 3;
通过设置长度来增长数组实际上不会在数组中放入任何内容,它只会设置
length
属性

push
方法在添加项目时查看
length
属性,因此执行以下操作:

var users = new Array(3);
users.push(someData);
与以下操作完全相同:

users[users.length] = someData;

如果希望数组从一开始就是空的,只需创建它而不设置长度:

var users = new Array();
还可以使用数组文字语法创建空数组:

var users = [];

数组不支持限制大小,因此如果希望集合的大小有限,则必须自己创建(或查找其他人创建的集合)。

这将在数组末尾保留3个未定义的值,而不是替换它们。我尝试使用array.unshift()是的,它开始从开始索引添加元素,但与array.push()时相同当添加新元素时,数组大小仍在增长,我只需要将数组添加到4个元素。Javascript没有固定大小的数组。所以你不能。当我从其他答案中知道Javascript没有有限大小的数组时,我这样做了,但感谢你对我的回答