我正在尝试从数组中过滤掉一些项目。到目前为止,我已经能够过滤数组中的项目,但如果我想从数组元素中删除子项,我无法这样做。
在下面的示例中,chartsArray
的代码值为Age_Total
。在数组el
中,我有这个字符串Age_Total
,当我过滤它时,它被移除。但我也有一个字段Q0120F_18P
,它不会被过滤掉。您仍然可以在Age_Female
下的第四个数组元素中看到此元素。所以我的问题是如何迭代chartsArray
,它可以过滤父数组元素以及子元素。
答案 0 :(得分: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;
}
}));