【发布时间】:2020-06-30 15:03:12
【问题描述】:
[{"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}]
我想要这个输出:基于退休的过滤器:假,退休:真,不应该显示并且有多个对象并且有深度嵌套的孩子我正在递归地做,但没有得到预期的输出
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}]
【问题讨论】:
标签: javascript