2016-08-08 30 views
2

Welche Datenstruktur ist das in JavaScript? Ist wie eine Liste, aber warum hat es eine geschweifte Klammer und nicht den Standard "[]"?Javascript List-like Datenstruktur

var states = { 
     "California": { 
     "Monterey": ["Salinas", "Gonzales"], 
     "Alameda": ["Oakland", "Berkeley"] 
     }, 
    "Oregon": { 
     "Douglas": ["Roseburg", "Winston"], 
     "Jackson": ["Medford", "Jacksonville"] 
     } 
    } 

Ich interessiere mich für eine Art von Array zu schaffen, die eine Struktur wie folgt hat:

Farben: Rot, Grün, Blau, Orange, Gelb

Nahrung: Bananen, Orangen

Menschen: Ich, Du, Us, Them

...

Gibt es so etwas in Javascript?

Danke!

+0

Es ist ein Objekt mit verschachtelten Objekten. –

+0

Es ist ein Objekt. – HoppyScoot

Antwort

2

Eines der wichtigsten Tools, die Ihnen in Javascript zur Verfügung stehen, ist objects. Sie sind Hash-Maps oder Wörterbücher oder Schlüssel/Wert-Paare oder wie immer Sie sie nennen möchten. Der Schlüssel ist eine Zeichenfolge (oder symbol) und der Wert kann alles sein, einschließlich anderer Objekte.

Um die Art von Beziehung zu erstellen Sie sprechen, könnte man so etwas schreiben:

var obj = { 
    colors: ['red', 'green', 'blue'], 
    food: ['bananas', 'oranges'], 
    people: ['me', 'you', 'us'] 
}; 
console.log(obj.colors); 
console.log(obj.food); 
console.log(obj.people); 
+0

Danke für die klaren Informationen und Links, Kabalis Antwort ist näher an dem, was ich gesucht habe, da es einfacher ist, dynamische Werte mit zu machen. Ich schätze die Hilfe :) –

+0

@noc_coder Für das, was es wert ist, ist Kabalis Weg, einem Objekt neue Eigenschaften hinzuzufügen, unkonventionell und nicht zu empfehlen. 'Obj.Colors = innerArray' ist dasselbe wie' obj ['Colors'] = innerArray'. –

1

Dies ist ein Objekt. Es kann so viele verschachtelte Datentypen haben, wie Sie möchten.

+0

http://www.w3schools.com/js/js_objects.asp ?? –

+0

ja! das ist die one – jessh

+0

Aber was ist, wenn meine Eigenschaften ungleich und nicht verwandt sind, wie in dem Beispiel, das ich oben gab? –

1
<script> 
var arrayObj = []; 

var obj = {}; 
var innerArray = ['Red', 'Green', 'Blue', 'Orange', 'Yellow']; 
var secondArray = ['Me', 'You', 'Us', 'Them']; 
obj['Colors'] = innerArray; 
obj['People'] = secondArray ; 
arrayObj .push(obj); 
</script> 

Sie mögen dieses

0

tun können, sollte ein Objekt mit verschachtelten Objekten Array . Etwas ähnlich mit diesem.

var countries = { 
    "USA" : { 
     "Alabama" : { 
       "Birmingham" : 371, 
       "Montgomery" : 8771 }, 
     "Alaska" : { 
       "Anchorage" : 9918, 
       "Nome" : 8171 }, 
      "Wyoming" : { 
       "Casper" : 718, 
       "Cody" : 888 } 
     }, 
    "Canada" : [ 
     "Alberta" : { 
       "Calgary" : "Z871" }, 
     "British Columbia" { 
       "Vancouver" : "B88C", 
       "Victoria" : "C99A" }, 
     ... 
}; 
2

Antwort des ersten Teils Ihrer Frage ist dies ein object. Wir können object so erklären. Für die Praxis Object können Sie diesen Link verwenden. Für den zweiten Teil Es gibt viele Möglichkeiten, wie Sie einem Objekt Elemente hinzufügen können. In meinem Beispiel deklariere ich ein Objekt und füge dann Attribute in das Objekt ein.

var obj = {}; 
 
    obj.Colors = ['Red', 'Green', 'Blue','Orange', 'Yellow'], 
 
    obj.Food = ['Bananas', 'Oranges'], 
 
    obj.People = ['Me', 'You', 'Us','Them'] 
 
    console.log(obj.Colors); 
 
    console.log(obj.Food); 
 
    console.log(obj.People);