let arrch=[{
name:'名字,
id:000,
children:[
name:'名字1,
id:111111,
children:[
name:'名字2,
id:222222,
children:[
name:'名字3,
id:333333,
children:[]
]
]
]
}]
循环递归的方法
function objectfun(arr) {
arr.map(item=> {
item.user='user';
if (item.children&& item.children[0]) {
return objectfun(item.children);
}
});
return arr;
}
如何把上面定义的arrch数组中每一项都添加一个user属性
let userarr=this.objectfun(arrch)
按道理说userarr就已经是最新的添加过user属性的数组了
错误:
Cannot add property XX, object is not extensible
只能外层添加了user属性,children内没有
正确方式如下:
完整代码
let arrch=[{
name:'名字,
id:000,
children:[
name:'名字1,
id:111111,
children:[
name:'名字2,
id:222222,
children:[
name:'名字3,
id:333333,
children:[]
]
]
]
}]
function objectfun(arr) {
arr.map(item=> {
item.user='user';
if (item.children&& item.children[0]) {
return objectfun(item.children);
}
});
return arr;
}
//使用方式
function click(){
const newArr = JSON.parse(JSON.stringify(arrch));
let newArrUser=this.objectfun(newArr )
}
完成!!!
关键代码是:
JSON.parse(JSON.stringify(arrch))