簡體   English   中英

當將元素推入大小數組時,數組大小動態增長是為什么?

[英]when push an element in sized array the array size is dynamically grow why?

我正在嘗試將字符串元素推送到大小數組,但是在推送元素時,將大小數組開始在數組的最后一個索引中插入元素並增長,但是我想在索引[0]中插入第一個元素,然后在第二個元素上插入[1]等等,直到索引[3],但我不知道為什么它開始在最后一個索引之后插入元素,並在添加更多元素時增長:

var users = new Array(3);
users.push(someData);
console.log(users);
console.log(users.length)

結果是這樣的:

[,,,'d','dd']
5

避免使用new Array(count) 只需創建一個空數組,然后像這樣推入即可:

var users = [];
users.push(someData);

或者,如果您有一些初始靜態內容,則更好:

var users = [ someData ];

我建議您避免使用new Array(...)的原因是因為它可能造成混淆並且容易出錯:

  • new Array(3)將創建一個包含3個項目的數組: [undefined, undefined, undefined]
  • new Array(3, 4)將創建一個包含項34的數組: [3, 4]

Push將新元素添加到數組的末尾。 您用三個空條目創建數組,然后將somethign推到末尾。 Javascript沒有大小限制的數組。 在您的情況下,我想您想創建一個空數組並推入它。

您傳遞給新Array調用的參數將設置初始大小,而不是最大大小。 沒有最大大小。 像這樣創建數組:

var users = new Array()

要么

var users = []

使用構造函數創建數組並指定大小時,該大小只會設置數組的當前長度,而不會限制數組的大小。

這樣做:

var users = new Array(3);

與此完全相同:

var users = new Array();
users.length = 3;

通過設置長度來增長數組實際上並不會在數組中放置任何內容,它只會設置length屬性。

push方法在添加項目時會查看length屬性,因此請執行以下操作:

users.push(someData);

與以下內容完全相同:

users[users.length] = someData;

如果您希望數組從一開始就為空,則只需創建它而無需設置長度:

var users = new Array();

您還可以使用數組文字語法創建一個空數組:

var users = [];

數組不支持限制大小,因此,如果要使用有限大小的集合,則必須自己創建(或找到其他人創建的集合)。

數組插入元素的array.push()方法,從數組的最后一個索引開始。 使用array.unshift()方法從數組的起始索引開始

因為在javascript中,“ var users = new Array(3);” 表示創建具有3個未定義元素的數組。

有關基本數組初始化的詳細信息,請參見: http : //www.w3schools.com/js/js_arrays.asp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM