因为antd 3的tree组件要求是children类似的格式 var nodes = [ {name: "父节点1", children: [ {name: "子节点1"}, {name: "子节点2"} ]} ]; 而后台的数据是id、pid格式的: var nodes = [ {id:1, pId:0, name: "父节点1"}, {id:11, pId:1, name: "子节点1"}, {id:12, pId:1, name: "子节点2"} ]; 所以这个时候就要进行格式转换了,用js实现怎么做?
时间: 2024-04-21 19:23:35 浏览: 8
你可以使用递归的方式来进行格式转换。下面是一个示例代码,可以将后台数据转换为antd 3 tree组件所需的格式:
```javascript
function convertToTreeData(data, parentId) {
var treeData = [];
for (var i = 0; i < data.length; i++) {
if (data[i].pId === parentId) {
var node = {
name: data[i].name,
children: convertToTreeData(data, data[i].id)
};
treeData.push(node);
}
}
return treeData;
}
var nodes = [
{id:1, pId:0, name: "父节点1"},
{id:11, pId:1, name: "子节点1"},
{id:12, pId:1, name: "子节点2"}
];
var treeData = convertToTreeData(nodes, 0);
console.log(treeData);
```
运行以上代码,你会得到如下输出:
```javascript
[
{
name: "父节点1",
children: [
{name: "子节点1", children: []},
{name: "子节点2", children: []}
]
}
]
```
这样,你就成功将后台数据转换为了antd 3 tree组件所需的格式。