匿名函数实现递归
{
a: "1",
children: [{
a: "11"
},
{
a: "12",
children: [{
a: "121"
}]
}]
}
现在想着把属性a改成id 结果为
config=
{
id:"1",
children:[
{
id:"11"
},
{
id:"12",
children:[
{
id:"121"
}]
}]
}
考虑用函数递归实现,又考虑到这种函数只是用一次,所以考虑用匿名函数
匿名函数的时候又遇到新问题,如何对children调用该匿名函数?用到了调用函数时arguments,使用arguments.callee这个对象就是当前匿名函数。
var config =
{
a: "1",
children: [{
a: "11"
},
{
a: "12",
children: [{
a: "121"
}]
}]
};
(function (config) {
if (config.a != undefined) {
config.id = config.a;
delete config.a;
}
if(config.children){
for (var i = 0; i < config.children.length; i++) {
arguments.callee(config.children[i]);
}
}
})(config)
浙公网安备 33010602011771号