String parentCode = org.getComCode().substring(0, org.getComCode().length() - 2);
时间: 2024-04-24 14:21:11 浏览: 79
这段代码使用了 `substring` 方法来截取 `org.getComCode()` 字符串的前 `org.getComCode().length() - 2` 个字符,并将结果赋值给 `parentCode`。
例如,如果 `org.getComCode()` 返回的是 `12345678`,那么 `parentCode` 将会是 `123456`。
这样做的目的是去除字符串末尾的两个字符。你可以将这段代码应用到你的程序中,根据实际的需求进行相应的调整。
相关问题
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提取出来当作该数组的键值
你可以使用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的所有子项组成的数组。
this.$u.api.serviceArea.getserviceArea().then(res=>{ this.list = this.list.concat(res); console.log(res) let company1 = []; let company2 = []; for(let i=1;i<this.list.length;i++){ if (this.list[i].treeLevel == 1) { let obj = {name:''}; obj["name"] = this.list[i].companyName company1.push(obj); }else if (this.list[i].treeLevel == 2) { company2.push(this.list[i]) } } this.company = company1; console.log(this.company ) 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); 如何将treeLevel=1的元素组成一个数组,里面包含treeLevel=2并且parentCode=父节点的companyCode
您可以使用数组的 `filter()` 方法来筛选出 `treeLevel=1` 的元素,然后使用 `map()` 方法对这些元素进行处理。在 `map()` 方法中,您可以使用 `filter()` 方法再次筛选出 `treeLevel=2` 且 `parentCode` 等于当前元素的 `companyCode` 的元素,最后将这些元素添加到当前元素的一个新属性中,例如 `children`。以下是一种可能的实现方式:
```
this.company = [];
this.child = [];
this.$u.api.serviceArea.getserviceArea().then(res => {
this.list = this.list.concat(res);
// Filter out treeLevel=1 elements
const companies1 = this.list.filter(item => item.treeLevel === 1);
// Map through the treeLevel=1 elements
this.company = companies1.map(company1 => {
// Filter out treeLevel=2 elements with matching parentCode
const children = this.list.filter(item => item.treeLevel === 2 && item.parentCode === company1.companyCode);
// Add children to the company1 object as a new property
return {
...company1,
children
};
});
// Filter out all treeLevel=2 elements
const companies2 = this.list.filter(item => item.treeLevel === 2);
// Group treeLevel=2 elements by parentCode
const groups = [...new Set(companies2.map(item => item.parentCode))];
const newArr = groups.map(parentCode => {
const children = companies2.filter(item => item.parentCode === parentCode);
children.forEach(child => {
let parent = companies2.find(item => item.companyCode === parentCode);
child.parentName = parent.companyName;
});
return children;
});
this.child = newArr;
});
```
在上面的代码中,我们首先使用 `filter()` 方法筛选出 `treeLevel=1` 的元素,并将结果存储在 `companies1` 数组中。然后使用 `map()` 方法对 `companies1` 数组中的每个元素进行处理,将符合条件的 `treeLevel=2` 的元素添加到一个新的 `children` 属性中,并将结果存储在 `this.company` 数组中。
最后,我们使用 `filter()` 方法筛选出所有的 `treeLevel=2` 的元素,并使用 `map()` 方法对这些元素进行分组,将每个元素的 `parentCode` 属性作为键,将符合条件的元素分组到一个新的数组中。在分组过程中,我们还使用 `forEach()` 方法将每个元素的 `parentName` 属性设置为其父元素的 `companyName`。最终的结果存储在 `this.child` 数组中。
阅读全文