Mein Code:Wie Objekte konvertieren enthält Array in Objekt von Objekten
function convert(arr, parent) {
var out = [];
for(var i in arr) {
if(arr[i].parent == parent) {
var children = convert(arr, arr[i].id)
if(children.length) {
arr[i].children = children
}
out.push(arr[i])
}
}
return out; //return Object.assign({}, out);tried this, but i lose parents childrens arrays
};
arras = [
{id: 1, name: "parent1", parent: null},
{id: 2, name: "children1", parent: 1},
{id: 3, name: "children2", parent: 1},
{id: 4, name: "parent2", parent: null},
{id: 5, name: "children3", parent: 4},
{id: 6, name: "children4", parent: 4}
]
console.log(convert(arras, null));
Wie Endergebnisses
{
parent1: [
{name: "children1"},
{name: "children2"}
],
parent2: [
{name: "children3},
{name: "children4"}
]
}
Was bisher aussehen sollte meine Ausgabe sieht: So
[
{id: 1, name: "parent1", parent: null}: [
{id: 2, name: "children1", parent: 1},
{id: 3, name: "children2", parent: 1},
],
{id: 4, name: "parent2", parent: null}: [
{id: 5, name: "children3", parent: 4},
{id: 6, name: "children4", parent: 4}
]
]
Erstens, was ich zu tun habe, ist das Haupt-Array in ein Objekt umzuwandeln, wenn ich dazu tendiere, verliere ich beide Eltern-Objekt-Arrays ... Außerdem muss ich das ändern Weise Konsole zeigt Objekte an, jede Hilfe wird geschätzt.
Die Funktion Art nicht von mit Kind ids beschäftigen, die nicht haben eine Eltern-ID, auf ein Array alle unvermittelten Kind Namen zuweisen 'arras.undefined', die für eine nicht ein guter Name ist Eigentum. Auch die Eltern-ID des Kindes geht dabei verloren, was ein großer Fehler wäre. – Blindman67
@ Blindman67 Sie bemerken, dass korrekt ist, wenn die Eingabedaten Datensätze enthalten, ohne die Eigenschaft 'Eltern' zu haben. Aber für mich ist es nur falsche Eingabedaten –