根据路径查找对象中的某个属性,并且更改该属性的值
var obj1 = {"people" : ["Jack","Tom","Andy"]}; //原对象
/*
* objectStr 这个是字符串格式
*path 属性的路径
* val 要改成的值
*/ function findMod(objectStr, path,val) {
var props = path.split(".");
var th="";
for(var i=0;i<props.length;i++){
th += "['"+props[i]+"']";
}
//判断是对象还是字符串
var isObj = new Function("return "+objectStr+th);
console.log(typeof isObj());
if(typeof isObj() == 'object'){
e = new Function(objectStr+th+'='+val);
}else if(typeof isObj() == 'string'){
e = new Function(objectStr+th+'="'+val+'"');
}
e();
}
findMod('obj1',"people.2.Andy",'[{"a":"hhh"},{"a":"888"}]'); //修改一个子对象
findMod('obj1',"people.2.Andy.0.a",'咳咳咳'); //修改一个属性值(字符串)
document.write(obj1['people'][2].Andy[0].a);