[英]JavaScript How to define an array of undefined length of empty objects?
var array = [];
var object = {};
現在,我需要一個空對象數組。
array[0] = {};
array[1] = {};
//........
//........
和
var array = [{}];
顯然是不對的。
如何在JS中定義(空)對象的數組?
var array = [{},{},{},{},.........];
謝謝。
編輯:
我需要的原因與使用具有不確定長度的數組是有用的原因相同,並且在某些情況下在數學上是自然的。
我需要對象包裝器,對於初始化,它只是一個空對象,就像在許多情況下某些值是null或未定義一樣。
所以,我有
var object = {};
array[0].value = 'foo', array[1].value = 'bar'.....
但是,我確實需要多個對象包裝器,並且數量不是預先確定的,因此,我需要對象的數組。
所以,對不起,我修改了我的問題標題
JavaScript如何定義未定義長度的空對象數組?
在您的數組中,以任何方式推送對象都是正確的。 沒關系的 喜歡:
var arr = [];
arr.push({}); // ok
aa[1] = {} // also ok
要么:
var arr = [{}, {}, {}]; // the way you are doing is also fine
或者,如果您想通過循環執行此操作,也可以。 喜歡:
var arr = [];
for(var i=0; i<5; i++){
arr[i] = {};
}
一般來說,寫法
var array = [];
array[0] = {};
array[1] = {};
//........
//........
在沒有大量復制粘貼的情況下,理智地使用for循環:
var array = [];
for(var i=0; i<10; i++){
array[i] = {};
}
陣列可以動態增長和收縮。 因此,從某種角度來看,它們的長度已經不確定。 如果需要,您始終可以向其中添加新對象。
您還可以創建一個輔助函數,該函數首先檢查某個對象是否在某個位置,如果不存在,則創建一個新對象。
您以array[2].value = 'foo'
為例。 這是您可以使用的輔助函數:
function getObjectAtIndex(arr, index) {
return arr[index] || (arr[index] = {});
}
然后,您無需編寫array[2].value = 'foo'
,而是這樣寫:
getObjectAtIndex(array, 2).value = 'foo'
我很確定像var array = [];
這樣的var array = [];
是一個對象數組。 根據Javascript的工作方式,您不必擔心空指針異常,因此只需定義數組並像使用空對象初始化它一樣操作,看看它是否有效
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.