【发布时间】:2018-08-27 06:10:54
【问题描述】:
我有以下嵌套的 JSON 有效负载,我想对其进行迭代,并使用lodash 找到匹配的id 值(我显然仍在掌握lodash)。下面是有效负载的示例,以及我正在使用的函数 - 这似乎有点冗长。有没有更简单的方法来完成我所需要的?
JSON 负载:
{
"_expanded": true,
"_canDrop": false,
"_id": "-1",
"_name": "root",
"_children": [
{
"_expanded": true,
"_canDrop": false,
"_id": "1",
"_name": "Child 1",
"_children": [
{
"_expanded": true,
"_canDrop": false,
"_id": "1-1",
"_name": "Child 1-1",
"_children": [
{
"_expanded": false,
"_canDrop": false,
"_id": "1-1-1",
"_name": "Child 1-1-1",
"_children": []
}
]
},
{
"_expanded": false,
"_canDrop": false,
"_id": "1-2",
"_name": "Child 1-2",
"_children": []
},
{
"_expanded": false,
"_canDrop": false,
"_id": "1-3",
"_name": "Child 1-3",
"_children": []
}
]
},
{
"_expanded": true,
"_canDrop": false,
"_id": "2",
"_name": "Child 2",
"_children": [
{
"_expanded": false,
"_canDrop": false,
"_id": "2-2",
"_name": "Child 2-2",
"_children": []
}
]
}
]
}
功能:
public findNode = (id: any): TreeNode => {
let result = null;
_.find(this._children, function(child) {
if (child._id === id) {
result = child;
} else {
if (child._children.length > 0) {
_.find(child._children, function(item) {
result = this.findNode(item._id);
})
}
}
});
return result;
}
【问题讨论】:
标签: arrays json typescript lodash