2010-12-14 5 views

Antwort

2

Verwenden Sie ein Array, wenn Sie eine Sammlung von Objekten eines Typs speichern möchten, die logisch zusammengehören.

Gibt es etwas Bestimmtes, worüber du dich wunderst?

Arrays sind nützlich, wenn Sie mit allen verwandten Elementen arbeiten (Schleifen), auf Objekte per Index zugreifen und sortieren möchten.

+0

nein. Nur verwirrt, was die praktischen Anwendungen eines Arrays gegenüber einem Objekt sind. Ich denke, der Begriff heißt "Use-Cases" ... um etwas Jargon zu verwenden. –

0

Sie verwenden Arrays häufig, wenn Sie eine Reihe von verwandten Elementen haben, die Sie ordnen und indizieren möchten.

9

Wenn Sie auf die Bestellung der Elemente in der Sammlung angewiesen sind, verwenden Sie Arrays, wenn die Reihenfolge nicht wichtig ist, verwenden Sie Objekte. Die Reihenfolge ist in Objekten nicht garantiert, aber sie ermöglichen schnelle Schlüssel-Wert-Paar-Lookups.

7

würde ich einen Array [] verwenden, wenn ich mit einer Liste von Objekten der gleichen Art * (wie eine Liste von Strings) zu tun habe, dass ich die Reihenfolge und eine Object {} will, wenn ich mit etwas zu tun habe, was ich will Eigenschaften von (und die Eigenschaften sind in der Regel von unterschiedlicher Art).

Zum Beispiel:

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

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

* Dies ist nur meine Vorliebe. Arrays können Elemente verschiedener Typen enthalten.

5

Sie sind nur anders data structures, sie dienen verschiedenen Zwecken. ArrayerweitertObject und bietet Eigenschaften wie length und Methoden wie push() und pop().

Denken Sie an ein Objekt als Hash-Tabelle und ein Array als Liste.

z. Sie können Arrays als Warteschlange oder als Stack verwenden, was mit Objekten nicht möglich wäre.

Auf der anderen Seite, wenn Sie Daten speichern möchten und direkt auf ein bestimmtes Datum zugreifen möchten, würden Sie ein Objekt verwenden.

Am Ende läuft es auf die Frage welche Datenstruktur ist die richtige für den Job. Vielleicht ist keiner von beiden und Sie würden stattdessen einen Baum benötigen (der über Objekte implementiert werden kann).

3

Objects sind ein guter Kandidat, wenn Sie einen eindeutigen Schlüssel haben.

Beispiel Array vs. Object:

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; 
    } 

Wie Sie ein Objekt sehen zu finden, ist viel teurer mit einer array (Schleife).Mit einem object haben Sie keinen Zugriff auf alle array Hilfsmethoden (sort/push/etc), aber Sie können weiterhin die Eigenschaften eines Objekts mit einer for...in-Schleife iterieren.

2

Objektschlüssel sind Strings; Array-Schlüssel sind Ganzzahlen. JavaScript-Objekte sind Maps (String -> anything) und Arrays sind Listen (geordnete Sammlungen von anything).

Hilft das?