[Bildbeschreibung hier eingeben] [1] Bitte helfen Sie mir, während ich mich bemühe, etwas zur Arbeit zu bringen. Ich habe ein JSON, das eine Baumansicht in meiner App darstellt.ReactJS Filterkomplex Json
{
name: 'Global', toggled: true, children: [
{
name: 'Region A', nodeid: 0,chosen: true,pushed: false,
children: [
{ name: 'Town A', nodeid: 1, chosen: true, pushed: false,
children: [{
name : "child 1", pushed: false, chosen:false
}]
},
{ name: 'Town B', nodeid: 2, chosen: false, pushed: false,
children: [{
name : "child 2", pushed: false, chosen: false
}]
}
]
}
]
};
Was ich tun möchte, ist Traverse durch meine JSON und nur die Einträge zurück, die die gewählte Eigenschaft als wahr haben.
Ich habe viele Dinge ohne Erfolg bisher versucht, können Sie mir helfen?
https://i.stack.imgur.com/r61MO.jpg
onPush(e){
var chosennodes = filters.filterTreeChosen(this.state.data);
this.setState({selectednodes: chosennodes});
}
Dann wird der Filter selbst:
[Object.filter = (obj, predicate) =>
Object.keys(obj)
.filter(key => predicate(obj\[key\]))
.reduce((res, key) => (res\[key\] = obj\[key\], res), {});
export const isChosen = (chosen) =>{
return chosen == true;
}
export const filterTreeChosen = (nodes) => {
var filtered = Object.filter(nodes, node => node.chosen == true);
console.log(filtered);
};][1]
https://i.stack.imgur.com/IAXZ7.jpg
Keine von denen haben "gewählt: wahr" –
gewählt wahr ist programmgesteuert eingestellt ... Ich habe zum Beispiel die JSON bearbeitet. –
Können Sie den Code posten, der dies erreichen soll? Wenn Sie "durch JSON traversieren" sagen, denke ich, dass Sie es nicht in ein JavaScript-Objekt zerlegen. – Smaft