js 如何将两个数组合并成tree 列如{"deviceId":"1680833623233802240","deviceName":"dt设备","children":[]}
时间: 2024-06-08 15:04:08 浏览: 93
在JavaScript中,将两个数组合并成树形结构,通常使用递归或者栈数据结构来处理。这里我们假设你有两个数组,一个是一级节点(顶级设备),另一个是二级节点(子设备),每个数组的元素都有`deviceId`和`children`属性(对于一级节点,`children`通常是空数组)。以下是一个简单的示例,如何将它们合并成所需的树结构:
```javascript
// 假设你有以下两个数组
const devices = [
{ deviceId: '1680833623233802240', deviceName: 'dt设备' },
// ...其他一级设备
];
const childDevices = [
{ deviceId: '1680833623233802241', deviceName: '子设备1', parentDeviceId: '1680833623233802240' },
{ deviceId: '1680833623233802242', deviceName: '子设备2', parentDeviceId: '1680833623233802240' },
// ...其他子设备
];
function mergeToTree(devices, childDevices) {
return devices.map(device => {
const children = childDevices.filter(child => child.parentDeviceId === device.deviceId);
return { ...device, children };
});
}
const tree = mergeToTree(devices, childDevices);
console.log(tree);
```
在这个例子中,`mergeToTree`函数遍历一级设备数组,并根据`parentDeviceId`在`childDevices`数组中查找对应的子设备,然后将找到的子设备添加到父设备的`children`属性中。
阅读全文