function Run(json,path){
if(path.length<=1){
value=json[path[0]]; // 如果这里换成var value=json[path[0]]结果是undefined
}
else {
var temp;
temp=json[path[0]]; //这里为什么不能用 json=json[path[0]]
path.splice(0,1);
Run(temp,path);
//arguments.callee(temp,path);
}
return value;
}
var myjson={a:1,b:{c:{e:3},d:4}};
var mypath=['b','d','e'];
var test=Run(myjson,mypath);
alert(test);
这样一个简单函数耗了我3个小时,各种尝试都试了最后才实现结果,但怎么也想不通为什么,标注的两个地是卡住的地方,
1如果value换成局部变量,为什么返回是空,
2为什么json=json[path[0]],这么用会报错,一定要经过一个中间变量
3能不能说说引用具体是怎么回事,比如var a={b:1};b=a;b.b=2,为什么a.b也会跟着变,为什么a,b指向一个地址
最后路径写错了,是["b","c","e"],忘高手解答,满意所有分全部奉上