JavaScript Abflachung ein array von arrays von Objekten
Ich habe ein array enthält mehrere arrays, die jeweils mehrere Objekte, ähnlich wie diese.
[[object1, object2],[object1],[object1,object2,object3]]
Hier ist ein screenhot von dem Objekt angemeldet auf der Konsole.
Was wäre der beste Ansatz, um zu einer Abflachung dieser heraus, so ist es nur ein array von Objekten?
Habe ich versucht, dies ohne Glück:
console.log(searchData);
var m = [].concat.apply([],searchData);
console.log(m);
searchData-Protokolle aus dem screenshot oben, aber m meldet sich [ ]
Hier ist der eigentliche Inhalt searchData:
[[{"_id":"55064111d06b96d974937a6f","title":"Generic Title","shortname":"generic-title","contents":"<p>The Healing Center offers practical, social, and spiritual support to individuals and families. Services include, but are not limited to: food and clothing, job skills training and job search assistance, auto repair (Saturdays only), mentoring, financial counseling, tutoring, prayer, life skills training, and helpful information about local community services.</p><p>Stay in touch with us:</p>","__v":0},{"_id":"5508e1405c621d4aad2d2969","title":"test english","shortname":"test-page","contents":"<h2>English Test</h2>","__v":0}],[{"_id":"550b336f33a326aaee84f883","shortname":"ok-url","title":"now english","contents":"<p>okokko</p>","category":"Transportation","__v":0}]]
InformationsquelleAutor der Frage byrdr | 2015-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die - Array.concat wie unten:-
flattened
wird Ihre erwarteten array.InformationsquelleAutor der Antwort Mritunjay
Einer rekursiven Lösung für Tiefe (geschachtelte) Abflachung:
Etwas kompakter mit ES6:
Zum Spaß, mit einem generator namens
F
für "glätten", zu träge zu generieren abgeflacht Werte:Für diejenigen, die nicht vertraut mit Generatoren die
yield *
syntax ergibt Werte von einem anderen generator.Array.from
nimmt einen iterator (wie die Ergebnisse von aufrufen der generator-Funktion) und verwandelt es in ein array.InformationsquelleAutor der Antwort
Wenn Sie nur einfach reduzieren, kann dies funktioniert:
Für komplexere Abflachung, Lodash hat der flatten-Funktion, welche vielleicht das, was Sie brauchen: https://lodash.com/docs#flatten
InformationsquelleAutor der Antwort Huy Hoang Pham
InformationsquelleAutor der Antwort Alexander Abashkin
Array.prototype.concat(...searchData)
ODER
[].concat(...searchData)
InformationsquelleAutor der Antwort Shreyas