将空的children置为undefined
示例用法:element组件库的级联选择器如果数组的最后一级的数据的children的值为空数组,那么会导致级联选择器会多出一个空白的最后一层
1. // 格式化数据,递归将空的children置为undefined
formatData(data) {
for (var i = 0; i < data.length; i++) {
if (data[i].children.length < 1) {
data[i].children = undefined
} else {
this.formatData(data[i].children)
}
}
return data
}
根据id查找层级不确定的数据对应的数据
也就是根据给定的id查找到与id值一样的数据
findDataById(data, id) {
for (let i = 0; i < data.length; i++) {
if (data[i].id == id) {
return data[i];
} else if (data[i].childlist) {
const result = this.findDataById(data[i].childlist, id);
if (result) {
return result;
}
}
}
return null;
}
根据id查找层级不确定的数据对应的name
digui(arr, id) {
for (let i = 0; i < arr.length; i++) {
const item = arr[i];
if (item.id === id) return item.name;
if (item.children && item.children.length > 0) {
const name = this.digui(item.children, id);
if (name) return name;
}
}
return '没有找到相关数据';
}
获取当前id所处的数据的所有父级数据
findParentData(data, id, parents = []) {
for (let i = 0; i < data.length; i++) {
if (data[i].id == id) {
return parents;
} else if (data[i].children) {
const result = this.findParentData(data[i].children, id, [...parents, data[i]]);
if (result) {
return result;
}
}
}
return null;
}