1. 程式人生 > >js自動生成物件的屬性

js自動生成物件的屬性

例如 我們有如下這麼一個物件 var obj = { a:{

                 b:"bb"

     }

}

但是我們現在想給  obj 物件增加如下屬性  obj.a.b.c.d.f="ff" ; 我們一般會如下做,obj.a.b.c={},obj.a.b.c.d={} ,obj.a.b.c.d.f="ff" ;但是如果我的屬性很多,這樣的方法時不可行的。現在提供一個自動生成物件屬性的方法

function autoCreateObjProperty(temString){
  var TemObjs = temString.split(".");
  for(var i =0;i<TemObjs.length;i++){
   var ttt = TemObjs[i];
   if(!obj.hasOwnProperty(TemObjs[i])){
    var objString="obj";
    for(var j= 1;j<=i;j++){
      objString+="."+TemObjs[j];
    }
    
    obj = eval(objString);
    if(obj == undefined){
     var temObjString="obj"; //物件的名var obj = {}
     for(var j= 1;j<i;j++){
       temObjString+="."+TemObjs[j];
     }
     obj = eval(temObjString);
     obj[TemObjs[i]]={};
     obj={};
    }
   }else{
    obj = obj[TemObjs[i]];
   }
  }
  return obj;
  
 }