Ich habe die folgenden JSON. Ich möchte das durchqueren und Werte für die Schlüssel erhalten, bei denen der 'check' Wert 'true' ist.Angular - Werte an einen JSON anhängen
{
"A_B":{
"ID":"09|_|06",
"address":"ABC",
"name":"2222222222",
"Documents":{
"1":{
"format":"xlsx"
},
"2":{
"format":"pdf"
}
},
"check":true
},
"C_B":{
"ID":"0a|_|0b",
"address":"Los Angeles",
"name":"4444444444",
"Documents":{
"1":{
"format":"docx"
},
"4":{
"format":"xlsx"
}
},
"check":true
},
"C_E":{
"ID":"05|_|06",
"address":"",
"name":"1111111111",
"Documents":{
"5":{
"format":"xlsx"
}
},
"check":false
}
}
In dem obigen Beispiel sollten Werte für A_B und C_B zum neuen json hinzugefügt werden. Die neue json würde wie folgt aussehen
{
"A_B":{
"ID":"09|_|06",
"address":"ABC",
"name":"2222222222",
"Documents":{
"1":{
"format":"xlsx"
},
"2":{
"format":"pdf"
}
},
"check":true
},
"C_B":{
"ID":"0a|_|0b",
"address":"Los Angeles",
"name":"4444444444",
"Documents":{
"1":{
"format":"docx"
},
"4":{
"format":"xlsx"
}
},
"check":true
}
}
Ich bin in der Lage, diese IDs [A_B und C_B] zu bekommen, wo 'Prüfen' === wahr, den Code unten mit
var IDs = Object.keys(completeJson);
var checkTrueIDs = IDs.reduce(function(initArr,ID) {
if(completeJson.check === true) {
initArr.push(ID);
}
return initArr;
},[]);
console.log("IDs wth check === true - " + checkTrueIDs);
Allerdings bin ich nicht können vollständige Objekte für diese IDs erhalten und sie zu einem neuen JSON hinzufügen. Wenn ich
tunvar newJson = {}
und dann in der, wenn die Bedingung (unter dem Push)
newJson = completeJson[ID];
diese überschreibt die vorherigen Werte, so ich am Ende mit nur einem Objekt links bin.
Es gibt _any_ json in dieser Frage nicht. Das sind nur JavaScript-Objekte. – Cerbrus