2017-10-20 106 views
1

我想从数组中过滤出一些项目。到目前为止,我已经能够过滤数组中的项目,但是如果我想从数组元素中删除一个子项,我无法这样做。 在下面的示例中,chartsArray的代码值为Age_Total。在数组el我有这个字符串Age_Total,当我过滤它被删除。但我也有一个字段Q0120F_18P,它不会被过滤。您仍然可以在Age_Female下的第四个数组元素中看到此元素。所以我的问题是我如何迭代通过chartsArray它可以过滤父数组元素以及子元素。从数组元素中过滤

https://jsfiddle.net/snt/n16pfgbk/

+0

事情是你有多层次的筑巢。你应该检查多少个关卡? – Piyin

+1

截至目前我有2个关卡,如果数据发生变化(可能),它可能会达到3级, – SNT

回答

2

你可以用递归调用过滤孩子并为其分配过滤器回调的内部。

chartsArray = chartsArray.map(a => a.filter(function code(o) { 
    if (!el.includes(o.code)) { 
     if (o.children) { 
      o.children = o.children.filter(code); 
     } 
     return true; 
    } 
}));