常用方法总结
1.将排列数组封装成父子结构的树形结构
let k = this.parentorchild(res.data.data, 1);
//data是数组,id是父级的id
parentorchild(data, id) {
const result = [];
let temp = [];
for (let i = 0; i < data.length; i++) {
if (data[i].parentID === id) {
const obj = data[i];
obj.show = false;
temp = this.parentorchild(data, data[i].orgID);
obj.children = temp;
result.push(obj);
}
if (data[i].orgTitle == "CEO总参办公室") {
data[i].orgTitle = "CEO";
}
}
return result;
},
2.一个混乱数组合成多个树结构,只能构成一层
let n=[
{
orgID:2,parentID:2,title:'a'
},
{
orgID:4,parentID:2,title:'a'
},
{
orgID:11,parentID:3,title:'a'
}
{
orgID:15,parentID:3,title:'a'
}
]
fnSetTreeData(data) {
var data = [...data];
var tree = data.filter((father) => {
var branchArr = data.filter((child) => {
if (father.orgID == child.parentID) child._hasParent = true;
return father.orgID == child.parentID;
});
if (branchArr.length > 0) father.children = branchArr;
return !father._hasParent;
});
tree = tree.filter((item) => {
return !item._hasParent;
})
return tree
},
3.reduce去重
let array=[
{value:1,name:'天'},
{value:2,name:'地'},
{value:3,name:'人'},
{value:4,name:'和'},
{value:4,name:'和'},
{value:5},
{value:6},
{value:7}
];
function one(array,key) {
return array.reduce(function (arr,cur) {
let find=arr.find(function (v) {
if (v.key){
return v.key==cur.key;
}
})
if (!find){
arr.push(cur)
}
return arr//再把更新过的返回出来 return出来的是reduce函数之前的数据 也就是本例的arr
},[]);
}
let k=one(array,name)
filter去重
//去重
mergeArr(arr, key) {
var newArr = [];
arr.forEach(item => {
var dataItem = item
if (newArr.length > 0) {
var filterValue = newArr.filter(v => {
return v[key] == dataItem[key]
})
if (filterValue.length > 0) {
newArr.forEach(n => {
if (n.province == filterValue[0].province) {
n.index = Number(filterValue[0].index) + Number(dataItem.index)
}
})
} else {
newArr.push(dataItem)
}
} else {
newArr.push(dataItem)
}
})
return newArr
}