{ "value": "-", "id": "2", "right": { "value": "*", "id": "4", "right": { "value": "c", "id": "5", "right": null, "left": null }, "left": { "value": "b", "id": "3", "right": null, "left": null } }, "left": { "value": "a", "id": "1", "right": null, "left": null } }使用js方法把left和right按组分好输出
时间: 2023-07-07 08:42:55 浏览: 55
可以使用递归的方式来解析这个 JSON 对象,具体实现可以参考下面的 JavaScript 代码:
```javascript
let json_str = '{ "value": "-", "id": "2", "right": { "value": "*", "id": "4", "right": { "value": "c", "id": "5", "right": null, "left": null }, "left": { "value": "b", "id": "3", "right": null, "left": null } }, "left": { "value": "a", "id": "1", "right": null, "left": null } }'
let data = JSON.parse(json_str)
let left_list = [], right_list = []
function extract_lr(node) {
if (!node) {
return
}
if (node.left) {
left_list.push(node.left)
extract_lr(node.left)
}
if (node.right) {
right_list.push(node.right)
extract_lr(node.right)
}
}
extract_lr(data)
console.log("left:", left_list)
console.log("right:", right_list)
```
输出:
```
left: [ { value: 'a', id: '1', right: null, left: null },
{ value: 'b', id: '3', right: null, left: null } ]
right: [ { value: '*', id: '4', right: { value: 'c', id: '5', right: null, left: null }, left: { value: 'b', id: '3', right: null, left: null } },
{ value: 'c', id: '5', right: null, left: null } ]
```
其中 `extract_lr` 函数用于递归解析 JSON 对象,返回左子树和右子树的列表。在主函数中调用 `extract_lr` 函数,将左子树和右子树分别存储到 `left_list` 和 `right_list` 中,并输出结果。
阅读全文