js 根据路径查找对象中的某个属性,并且更改该属性的值


根据路径查找对象中的某个属性,并且更改该属性的值

    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);

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM