簡體   English   中英

JavaScript如何定義未定義長度的空對象數組?

[英]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.

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