let groups = [...new Set(company2.map(item => item.parentCode))]; let newArr = groups.map(parentCode =>{ let children = company2.filter(item => item.parentCode == parentCode); children.forEach(child => { // 获取当前子项的父项 let parent = company2.find(item => item.parentCode === parentCode); // 将父项的companyName赋值给子项 child.parentName = parent.companyName; }); return children; }); this.child = newArr; console.log(this.child); 将获得的数组中的每一项中的companyName提取出来当作该数组的键值
时间: 2024-01-29 14:04:56 浏览: 22
你可以使用reduce方法将获得的数组转换为对象,其中对象的key为每个子项的companyName,value为所有具有该companyName的子项组成的数组,示例代码如下:
```
let childObj = this.child.reduce((acc, item) => {
let companyName = item[0].parentName;
acc[companyName] = item;
return acc;
}, {});
console.log(childObj);
```
这样就可以得到一个以companyName为键值的对象,其中每个键对应的值为具有该companyName的所有子项组成的数组。
相关问题
如何得到newArr数组中的companyName并根据数组显示 let groups = [...new Set(company2.map(item => item.parentCode))]; let newArr = groups.map(parentCode =>{ return company2.filter(item => item.parentCode == parentCode); }) this.child = newArr; console.log(this.child)
可以使用数组的 map 方法遍历 newArr 数组,然后在每个子数组中使用 map 方法获取 companyName,最后将其显示出来。可以参考下面的代码示例:
```
let groups = [...new Set(company2.map(item => item.parentCode))];
let newArr = groups.map(parentCode =>{
return company2.filter(item => item.parentCode == parentCode);
});
this.child = newArr;
console.log(this.child);
// 获取 companyName 并显示
this.child.map(group => {
group.map(item => {
console.log(item.companyName);
});
});
```
在上面的代码中,我们首先使用 Set 和 map 方法获取了按 parentCode 分组后的子数组 newArr,然后将其赋值给 this.child,并在控制台中输出了 this.child 的值。
接下来,我们使用 map 方法遍历 this.child,然后使用 map 方法遍历每个子数组 group,最后获取其中的 companyName 并显示出来。
let groups = [...new Set(company2.map(item => item.parentCode))]; let newArr = groups.map(parentCode =>{ return company2.filter(item => item.parentCode == parentCode); }); this.child = newArr; console.log(this.child); 获取了按parentCode分组后的子数组newArr,并按照相同的分组获取每个分组的companyName并保存在原分组数组中
可以尝试使用以下代码实现:
```javascript
let groups = [...new Set(company2.map(item => item.parentCode))];
let newArr = groups.map(parentCode =>{
let children = company2.filter(item => item.parentCode == parentCode);
children.forEach(child => {
// 获取当前子项的父项
let parent = company2.find(item => item.code === parentCode);
// 将父项的companyName赋值给子项
child.parentName = parent.companyName;
});
return children;
});
this.child = newArr;
console.log(this.child);
```
这里在遍历每个分组时,先筛选出该分组的子项数组,然后再遍历子项数组,通过 `find` 方法查找该子项对应的父项,并将父项的 `companyName` 赋值给该子项的 `parentName` 属性。最后返回该分组的子项数组,并将结果保存在 `newArr` 中。