刚才问的问题可以再回答一下吗
时间: 2023-11-26 21:04:25 浏览: 79
当然,我可以再为您回答一遍。
可以通过以下代码实现:
```javascript
// 定义Site对象
function Site(id, name) {
this.id = id;
this.name = name;
}
// 定义Tenant对象
function Tenant(tenantId, tenantName) {
this.tenantId = tenantId;
this.tenantName = tenantName;
this.children = []; // 存放Site对象的数组
}
// 定义将列表L转换为对象的函数
function convertListToObject(L) {
const obj = {};
L.forEach((item) => {
const { id, name, tenantId, tenantName } = item;
const site = new Site(id, name);
if (!obj[tenantId]) {
obj[tenantId] = new Tenant(tenantId, tenantName);
}
obj[tenantId].children.push(site);
});
return Object.values(obj); // 返回对象的值组成的数组
}
// 示例
const L = [
{ id: 1, name: 'site1', tenantId: 1, tenantName: 'tenant1' },
{ id: 2, name: 'site2', tenantId: 1, tenantName: 'tenant1' },
{ id: 3, name: 'site3', tenantId: 2, tenantName: 'tenant2' },
{ id: 4, name: 'site4', tenantId: 2, tenantName: 'tenant2' },
];
const R = convertListToObject(L);
console.log(R);
// 输出:
// [
// { tenantId: 1, tenantName: 'tenant1', children: [
// { id: 1, name: 'site1' },
// { id: 2, name: 'site2' }
// ]
// },
// { tenantId: 2, tenantName: 'tenant2', children: [
// { id: 3, name: 'site3' },
// { id: 4, name: 'site4' }
// ]
// }
// ]
```
上述代码通过遍历列表L中的元素,将Site对象添加到对应的Tenant对象的children数组中,最终返回Tenant对象的数组。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)