需求
把 待处理数据 中的数据跟 源数据 中比较,只要某项的子元素个数少了就删除那一项。
数据
源数据
[
{
"level": 1,
"id": "1",
"parentId": "0",
"children": [
{
"level": 2,
"id": "1-1",
"parentId": "1"
},
{
"level": 2,
"id": "1-2",
"parentId": "1",
"children": [
{
"level": 3,
"id": "1-2-1",
"parentId": "1-2"
},
{
"level": 3,
"id": "1-2-2",
"parentId": "1-2"
}
]
},
{
"level": 2,
"id": "1-3",
"parentId": "1",
"children": [
{
"level": 3,
"id": "1-3-1",
"parentId": "1-3"
},
{
"level": 3,
"id": "1-3-2",
"parentId": "1-3"
}
]
}
]
},
{
"level": 1,
"id": "2",
"parentId": "0",
"children": [
{
"level": 2,
"id": "2-1",
"parentId": "2",
"children": [
{
"level": 3,
"id": "2-1-1",
"parentId": "2-1"
},
{
"level": 3,
"id": "2-1-2",
"parentId": "2-1"
}
]
},
{
"level": 2,
"id": "2-2",
"parentId": "2",
"children": [
{
"level": 3,
"id": "2-2-1",
"parentId": "2-2"
},
{
"level": 3,
"id": "2-2-2",
"parentId": "2-2"
}
]
}
]
}
]
待处理数据
[
{
"level": 1,
"id": "1",
"parentId": "0"
},
{
"level": 2,
"id": "1-1",
"parentId": "1"
},
{
"level": 2,
"id": "1-2",
"parentId": "1"
},
{
"level": 3,
"id": "1-2-1",
"parentId": "1-2"
},
{
"level": 1,
"id": "2",
"parentId": "0"
},
{
"level": 2,
"id": "2-2",
"parentId": "2"
},
{
"level": 3,
"id": "2-2-1",
"parentId": "2-2"
}
]
处理后数据的样例
[
// 这项本身就没有子元素,所以不处理
{
"level": 2,
"id": "1-1",
"parentId": "1"
},
// 这项的父元素及祖父元素都删除了,因为兄弟元素少了所以删除了父元素,因为删除了父元素,祖父元素的子元素就少了,所以删除了祖父元素
{
"level": 3,
"id": "1-2-1",
"parentId": "1-2"
},
{
"level": 3,
"id": "2-2-1",
"parentId": "2-2"
}
]