[{"code":"96","value":"RemoveTest","parentLabelCode":1,"color":null,"level":1,"children":[{"code":"97","value":"R1","parentLabelCode":96,"color":null,"level":2,"children":[],"visible":true,"retired":false,"systemLabel":true,"removeOnArchive":true,"displayNumber":1,"labelTranslations":null},{"code":"98","value":"R2","parentLabelCode":96,"color":null,"level":2,"children":[],"visible":true,"retired":true,"systemLabel":true,"removeOnArchive":true,"displayNumber":2,"labelTranslations":null},{"code":"99","value":"R3","parentLabelCode":96,"color":null,"level":2,"children":[],"visible":true,"retired":true,"systemLabel":true,"removeOnArchive":true,"displayNumber":2,"labelTranslations":null}],"visible":true,"retired":false,"systemLabel":true,"removeOnArchive":true,"displayNumber":0,"labelTranslations":null}]
I want this output: Filter based on retired:false, retired : true , should not be display and have multiple object and have deep nested children i am doing recursively but not getting expected output
var list = label_lists.filter(function f(item) {
return item.retired==false ||
item.children && (item.children = item.children.filter(f)).length
})
[{"code":"96","value":"RemoveTest","parentLabelCode":1,"color":null,"level":1,"children":[{"code":"97","value":"R1","parentLabelCode":96,"color":null,"level":2,"children":[],"visible":true,"retired":false,"systemLabel":true,"removeOnArchive":true,"displayNumber":1,"labelTranslations":null}],"visible":true,"retired":false,"systemLabel":true,"removeOnArchive":true,"displayNumber":0,"labelTranslations":null}]