2010-12-14 56 views

回答

2

當您想要存儲一個類型且邏輯上屬於一個對象的集合時使用數組。

有什麼具體的問題想知道嗎?

當您想要操作所有相關項目(循環),通過索引訪問項目以及進行排序時,數組非常有用。

+0

nope。只是混淆了數組和對象的實際應用。我認爲這個詞被稱爲'use-cases'...來使用一些術語。 – 2010-12-14 16:03:59

0

當您有一系列您想要訂購和編制索引的相關項目時,您經常使用數組。

9

如果您需要依賴集合中元素的訂單,請在訂單不重要時使用Arrays,使用對象。在對象中不保證順序,但它們提供了快速的鍵值對查找。

7

當我處理與我想要的東西相關的同一類型的對象列表(如字符串列表)時,我想要的順序是Object {},我會使用Array [] (和屬性通常是不同類型的)屬性。

例如:

var numberNames = ["one","two","three","four"]; 

var computer = { 
    motherBoard : "mother", 
    psu : psu_object(), 
    ram : { 
      ram1 : GB, 
      ram2 : TwoGB 
    } 
}; 

*這只是我的偏好。數組可以包含多種不同類型的元素。

5

他們只是不同data structures,他們服務於不同的目的。 Array延伸Object並且提供諸如length和諸如push()pop()的方法的性質。

將對象想象爲散列表和數組作爲列表。

E.g.你可以使用數組作爲隊列或作爲堆棧,這是不可能的對象。

另一方面,如果您想存儲數據並想直接訪問特定的數據,您可以使用一個對象。

最後歸結爲問題哪個數據結構對於作業是正確的。也許他們都不是,你需要一棵樹來代替(可以通過對象來實現)。

3

Objects是一個很好的候選人,如果你有一個獨特的關鍵。

ArrayObject

var item = { id: '123', prop1: 456 }; 

var obj = {}, arr = []; 

// add to object 
obj[item.id] = item; 

// add to array 
arr.push(item); 

// get from object 
var got = obj[item.id]; 

// get from array 
var got; 
for(var i = 0; i < arr.length; i++) 
    if(arr[i].id == item.id){ 
     got = arr[i]; 
     break; 
    } 

正如你可以看到找到一個目的是更昂貴的具有array(循環)。使用object,您將無法訪問所有幫助器方法(排序/推送/等),但仍然可以使用for...in循環迭代對象的屬性。

2

對象鍵是字符串;數組鍵是整數。 JavaScript對象是地圖(String -> anything),數組是列表(有序集合anything)。

這有幫助嗎?

相關問題