【发布时间】:2020-04-18 11:00:26
【问题描述】:
当尝试使用 Lodash 过滤具有动态子节点的数组时。我得到了二级子节点,但我需要过滤子节点,它可以动态可用。我能够达到第二级,但动态循环没有发生。您能否帮助使用 Lodash 循环和过滤数组中的确切子节点。请找到到目前为止完成的编码
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>
var treeData = [{
"id": 1,
"title": "Test1",
"type": [{
"name": "1.1",
"present": false
}, {
"name": "1.2",
"present": true
}, {
"name": "1.3",
"present": false
}]
}, {
"id": 2,
"title": "Test2",
"type": [{
"name": "2.1",
"present": false
}, {
"name": "2.2",
"present": true
}, {
"name": "3.3",
"present": false
}]
}, {
"id": 3,
"title": "Test3",
"type": [{
"name": "3.1",
"present": false,
"type": [{
"name": "3.1.1",
"present":false
}, {
"name": "3.1.2",
"present":true
}, {
"name": "3.1.3",
"present":false
}, ]
}, {
"name": "3.2",
"present": true
}, {
"name": "3.3",
"present": true
}]
}];
var result = _(treeData)
.filter({
type: [{ name: '3.3' }]
})
.map(({ type, ...o }) => ({
...o,
type: _.filter(type, { name: '3.3' })
}))
.value();
console.log(result);
在上面的示例中,我可以获取名称:3.3.. 但无法获取过滤器节点名称:“3.1.3”。任何人都可以请帮忙。提前致谢。
【问题讨论】:
标签: javascript lodash