-2
Ich versuche, ein neues Objekt aus einem alten Objekt rekursiv wie zu bauen:Construct neues Objekt in JS mit [] Notation
var arr = {};
var markCheckBoxes = function(obj){
var trackArr = new Array();
for(var prop in obj){
if(!!obj[i] && typeof(obj[i])=="object"){
trackArr.push(i);
markCheckBoxes(obj[i]);
trackArr.pop();
}
else{
var str = trackArr.join(".") + "." + i;
arr[str] = true;
}
}
};
Aber das schafft ein flaches Objekt. Zum Beispiel, wenn obj
ist:
obj = {
prop1: {
subprop1: "text",
subprop2: "extra"
}, prop2:{
subprop: {another: 3}
}
}
Dann wird die obige Funktion ein Objekt mit Schlüssel erstellt:
{
"prop1.subprop1": true,
"prop1.subprop2": true,
"prop2.subprop.another": true
}
Ich rate von 'new Array()' Ihre ein JS-Neuling. Das Festlegen einer Objekteigenschaft über '[]' funktioniert nur eine Ebene tief. Sie können keine '.' getrennten Eigenschaften festlegen, wie Sie es versuchen. EDIT: Down-Stimmen können sein, weil Sie ein Problem angegeben haben, aber keine Fragen dazu gestellt. – ste2425
@ ste2425 Wie kann ich das mit der Liste der Eltern tun, die ich in 'trackArr' gesammelt habe? – ayushgp
@ ste2425 Und warum sollte ein JS-Pro kein 'neues Array()' benutzen? – ayushgp