[ここに画像の説明を入力してください] [1]何か仕事をするのに苦労しているように助けてください。私は私のアプリでツリービューを表すJSONを持っています。ReactJSフィルター複合体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
}]
}
]
}
]
};
私がしたいことは、自分のJSONをたどり、選択したプロパティを持つエントリだけをtrueとして返します。
私はこれまでのところ成功しなかった多くのことを試みました、あなたは私を助けることができるでしょうか?
https://i.stack.imgur.com/r61MO.jpg
onPush(e){
var chosennodes = filters.filterTreeChosen(this.state.data);
this.setState({selectednodes: chosennodes});
}
そして、フィルタ自体:
[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
'selected:true'はありません –
selected trueはプログラムによって設定されています...例えばJSONを編集しました。 –
これを達成するはずのコードを投稿できますか? 「JSONをトラバースする」と言うと、それをJavaScriptオブジェクトに解析していないと思います。 – Smaft