2016-07-27 11 views
0

Ich habe Array wie folgt:Multidimensionale Array Display

var multiarray = { 

    cat:{ 
     name:'hellokitty', 
     legs:4 
    }, 
    dog:{ 
     name:'fred', 
     legs:4 
    } 
}; 

Ich zeige nur wollen, Katze und Hund. wie dieses console.log(multiarray[0]) => cat. Aber es funktioniert nicht.

Katze und Hund sind eine Art ID. Ich möchte ID im mehrdimensionalen Objekt-Array anzeigen.

+2

, die mit Eigenschaften ein Objekt ist, ist es kein Array. –

+0

Hier ist Multiarray ein Objekt nicht Array. Sie können 'console.log (multiarray ['cat'])' 'verwenden, um das innere' cat' Objekt zu erhalten. –

Antwort

2

Sie wollen dies:

var multiarray = { 
 
    cat:{ 
 
    name:'hellokitty', 
 
    legs:4 
 
    }, 
 
    dog:{ 
 
    name:'fred', 
 
    legs:4 
 
    } 
 
}; 
 

 
console.log(Object.keys(multiarray)[0]); 
 
console.log(Object.keys(multiarray)[1]);

Wie in den Kommentaren bemerkt, Ihr multiarray ist eigentlich ein Objekt.

Auf der anderen Seite gibt Object.keys(multiarray) ein Array zurück: die Liste der Objektschlüssel.

Bitte beachten Sie, dass Javascript nicht die Reihenfolge der Schlüssel (oder "Eigenschaften") in einem Objekt garantiert. Mit anderen Worten, Sie sollten nicht davon ausgehen, dass "Katze" zuerst kommt.

+1

Vielen Dank. – Soo

+1

Ich bin froh, dass Sie eine Erklärung gegeben haben, ich habe mir Sorgen gemacht, dass es als Antwort auf diese Art von "Versuchen Sie das" zurückbleiben würde. –

1

Wie andere Benutzer zuvor erwähnt, multiarray Variable ist eigentlich ein Prototyp Object, kein Array.

var multiarray = { 
 

 
    cat:{ 
 
     name:'hellokitty', 
 
     legs:4 
 
    }, 
 
    dog:{ 
 
     name:'fred', 
 
     legs:4 
 
    } 
 
}; 
 

 
console.log(typeof(multiarray)); //"object" 
 
console.log(typeof(multiarray) == Array); //false

Alle Prototypen des Objekts sind zählbare in JavaScript. Und Sie können über Tasten mit for for in statement iterieren.

Die Anweisung for ... in iteriert die aufzählbaren Eigenschaften eines Objekts in beliebiger Reihenfolge. Für jede einzelne Eigenschaft können Anweisungen ausgeführt werden.

var multiarray = { 
 

 
    cat:{ 
 
     name:'hellokitty', 
 
     legs:4 
 
    }, 
 
    dog:{ 
 
     name:'fred', 
 
     legs:4 
 
    }, 
 
    ape:{ 
 
     name:'charlie', 
 
     legs:2 
 
    }, 
 
    elephant:{ 
 
     name:'big indian', 
 
     legs:4 
 
    } 
 
}; 
 

 
for(var k in multiarray) { console.log(k); } //will print keys (cat, dog, ape, elephant,)