递归循环数组数据的同时,根据某个条件进行过滤
<template>
<div>{{ result }}</div>
</template>
<script>
export default {
name: "x6",
data() {
return {
arr: [
{
value: "CMCC",
aaa: {
type: "SUBNETWORK",
children: [
{
value: "杭州",
aaa: {
type: "SUBNETWORK",
children: [
{
value: "滨江",
aaa: {
type: "PON",
children: [],
},
},
],
},
},
{
value: "武汉",
aaa: {
type: "SUBNETWORK",
children: [
{
value: "洪山区",
aaa: {
type: "PON",
children: [],
},
},
{
value: "江夏区",
aaa: {
type: "TEST",
children: [],
},
},
],
},
},
{
value: "上海",
aaa: {
type: "TEST",
children: [],
},
},
],
},
},
],
result: "",
};
},
mounted() {
console.log(this.recursivefilter(this.arr, "PON"));
},
methods: {
recursivefilter(arr, value) {
return arr.filter((item) => {
if (item.aaa.type === value) {
return false;
}
if (item.aaa.children && item.aaa.children.length > 0) {
item.aaa.children = this.recursivefilter(item.aaa.children, value);
}
return true;
});
},
},
};
</script>
运行结果: