2017-09-20 1 views
0

Grundsätzlich habe ich die folgende Array (oder JSON):Wie finden Sie die Kinder eines bestimmten Arrays?

apps = { 
    app1: 
    [ 
     "ci-extension", 
     "Unnamed", 
     "<h1>Hello world!</h1>" 
    ], 
    app2: 
    [ 
     "ci-extension", 
     "Another one!", 
     "Cool!" 
    ], 
} 

Gibt es eine Möglichkeit, um zu bestimmen, wie viele Kinder ist das Array? Zum Beispiel In diesem Fall ist die Antwort 2: app1 & app2. Und wenn wir ein weiteres Objekt "Anwendung" hinzufügen, lautet die Antwort 3. Ich habe versucht, die folgenden:

apps.length 
//returns "undefined" 

for (i = 0; apps[i] != undefined; i++) { 
    console.log(apps[i]); 
    //also returns "undefined" 
    //I am later gonna use also the values in the child, so I stored all the children to a new array 
    meta.push(apps[i]); //"meta" here is another vriable with an array in it 
} 

(wenn dies Sinn macht)
ich die for erwartet, so etwas zurück:

app1
app2
Anwendung (Wenn Sie das neue Objekt zählen, das wir hinzugefügt haben)

Und der Wert von meta zu ["app1", "app2", "application"] sein.

Mein Verstand wurde völlig verschleiert. Ich habe keine Ahnung, wo und was ich falsch mache, daher würde jede Hilfe sehr geschätzt werden. Danke im Voraus!

EDIT: Wenn es irgendeine Art und Weise zu push() Elemente in apps ist, werde ich Sie bitten, mich zu leuchten. Danke noch einmal!

+3

'apps' in der folgenden Art und Weise Eigenschaften dieses Objekt zuweisen ist kein Array, noch ist es JSON - es ist ein [Objektliteral] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Object_literals). – chazsolo

Antwort

0

Sie können folgende

let apps = { 
 
    app1: 
 
    [ 
 
     "ci-extension", 
 
     "Unnamed", 
 
     "<h1>Hello world!</h1>" 
 
    ], 
 
    app2: 
 
    [ 
 
     "ci-extension", 
 
     "Another one!", 
 
     "Cool!" 
 
    ], 
 
} 
 

 
let result = Object.keys(apps).length; 
 

 
console.log(result);
hier Object.keys tun() würde ein Array aller Schlüssel im Objekt zurück. Sie müssen lediglich die Länge dieses Array, das die Gesamtzahl der Schlüssel in dem Objekt geben würde

Sie können

let apps = { 
 
    app1: 
 
    [ 
 
     "ci-extension", 
 
     "Unnamed", 
 
     "<h1>Hello world!</h1>" 
 
    ], 
 
    app2: 
 
    [ 
 
     "ci-extension", 
 
     "Another one!", 
 
     "Cool!" 
 
    ], 
 
} 
 

 
apps['app3'] = ["test"]; 
 
let result = Object.keys(apps).length; 
 
console.log(result); 
 
// or the following way 
 
let objectToPush = {app4: ['test2']}; 
 
Object.assign(apps, objectToPush); 
 
console.log(Object.keys(apps)); 
 
console.log(Object.keys(apps).length);

+0

Vielen Dank für die schnelle Antwort! Ich habe um 3 Dinge gebeten und das wird mir helfen, sie alle zu lösen! Du bist großartig! –

+0

siehe die aktualisierte Antwort – marvel308

Verwandte Themen