js树形数据的增删改查(递归)

新增

  • 新增数据案例:给当前选中的对象添加孩子数据
// 调用递归函数 obj:新增对象的父级对象的数据,treeData:树形数据,msg:新增对象的名称

let newArr = this.handleTreeData(obj,treeData,msg)//其实由于treeData是响应式数据所以下面都是对他本身进行修改的,所以直接调取treedata也可以获取最新数据
// 递归遍历数组
            handleTreeData(obj,data,msg){
   
                data.forEach(item=>{
   
                    if(item.id===obj.id){
   
                       let newObj = {
   
                                    id: item.children?`${
     obj.id}${
     item.children.length+1}`:`${
     obj.id}1`,
                                    name: msg,
                                    pId: obj.id,
                                    icon:item.children?item.children[0].icon:'fa-folder',
                                    level:obj.level+1,
                                }
                        // item.children?item.children.push({...newObj}):item.children=[{...newObj}];
                        item.children?item.children.push({
   ...newObj}):this.$set(item,'children',[{
   ...newObj}]);
                        console.log(item,'item的值')
                    }else{
   
                        if(item

你可能感兴趣的:(javascript,前端)