[英]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)
將創建一個包含項3
和4
的數組: [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.