从数组元素过滤

时间:2017-10-20 21:09:04

标签: javascript arrays filter

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

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

1 个答案:

答案 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;
    }
}));