Hier meine Eingabe ist:Flatten und verschmelzen Array von Array von Objekten in Javascript
var toto=[
[
{ "a": "24" },
{ "a": "23.9"},
{ "a": "NaN"},
{ "a": "3" }
],
[
{"b": "19"},
{"b": "20"},
{"b": "NaN"},
{"b": "3" }
],
[
{"c": "27"},
{"c": "28"},
{"c": "NaN"},
{"c": "3" }
]
];
Alle Arrays von Objekten gewährleistet werden, um die gleiche Anzahl von Objekten enthalten.
Ich möchte in Ausgabe erhalten:
var out = [
{ "a": "24", "b": "19", "c":"27" },
{ "a": "23.9", "b": "20", "c":"28"},
{ "a": "NaN", "b": "NaN", "c":"NaN"},
{ "a": "3", "b": "3", "c": "3"}
]
Welches ist, für jede innere Anordnung nimmt das n-te Element und Zusammenführen in ein Objekt, und schieben sie in einen Ergebnis-Array.
Ich habe eine „hirntot“ Lösung, die auf der ersten Untergruppe iteriert und dann auf den anderen Arrays iterieren:
var out = [];
$(toto[0]).each(function(i, item) {
var o = {};
$(toto).each(function(j, array) {
var item = array[i];
o[Object.keys(item)[0]] = Object.values(item)[0];
});
out.push(o);
});
Es funktioniert, aber es ist eine Art scheußlich, und ich möchte wissen Sie, ob es eine Lösung mit funktionalen Methoden wie map und reduce gibt.
Wissen Sie das?
, die schnell Nina war. – Pineda
Ja, und sie hatte sofort eine Lösung und verfeinert sie. Danke Nina! – Gui13