根據路徑查找對象中的某個屬性,並且更改該屬性的值
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);