2017-08-25 3 views
-4

Was ist der beste und effizienteste Weg, um Sub-Arrays eines Arrays zu erstellen? Ich habe eine Reihe von Objekten, wie folgt:Unterarrays eines Arrays erstellen

bigArray = [ 
    { 
     id: 1, 
     name: "Marc", 
     age: 29 
    }, 
    { 
     id: 2, 
     name: "Caroline", 
     age: 27 
    }, 
    { 
     id: 3, 
     name: "John", 
     age: 30 
    }]; 

Und ich möchte 3 Subanordnungen = wie

  • ids erzeugen [1, 2, 3]
  • names = [“ Marc“, "Caroline", "John"]
  • Alter = [29, 27, 30]

ich habe versucht, mit verschachtelten "für" Schleifen und experimentierten sie mit einer Karte() -Methode, aber ich m nicht c Überzeugt das ist der sauberste Weg. Vor allem, da ich Dutzende von Parametern für jedes Objekt haben (zB „Nachname, Stadt, Auto ...)

+0

Sie benötigen nur eine Schleife. Parse die json eins nach dem anderen Objekte und die Daten extrahieren. Es ist O (n) –

Antwort

2

Unter der Annahme, alle Objekte die gleichen Schlüssel im Array haben, würde ich es auf diese Weise tun:

bigArray = [ 
 
    { 
 
     id: 1, 
 
     name: "Marc", 
 
     age: 29 
 
    }, 
 
    { 
 
     id: 2, 
 
     name: "Caroline", 
 
     age: 27 
 
    }, 
 
    { 
 
     id: 3, 
 
     name: "John", 
 
     age: 30 
 
    }]; 
 

 
let output = {} 
 

 
Object.keys(bigArray[0]).forEach(key => { 
 
\t output[key+"s"] = bigArray.map(obj => obj[key]) \t 
 
}) 
 

 
// Or as a one-liner, to show off to your friends 
 
Object.keys(bigArray[0]).forEach(key => output[key+"s"] = bigArray.map(obj => obj[key])) 
 

 
console.log(output)

Dann acces Sie die Daten mit output.names, output.ages

+0

'out put "hat keine Eigenschaften namens' name' oder 'alters'. – ASDFGerte

+0

Das ist richtig, Code aktualisiert. Danke –

+0

Danke Jeremy, genau wonach ich gesucht habe. Ich war besorgt, dass foreach Loops ziemlich viel auf einer großen Anordnung verbrauchen würden, aber ich bin froh zu sehen, dass dies deine Empfehlung ist. – Bertrand

Verwandte Themen