【问题标题】:Accessing keys within Objects for use in a function访问对象中的键以在函数中使用
【发布时间】:2017-05-17 05:41:26
【问题描述】:

我有一个嵌套对象:

myObj = {
   id:'AA',
   child:{
      id:'BB',
      key1:'CC'
   },
   child2:{
      id:'DD',
      key1:'EE'
   },

};

我还有一个功能,我目前正在这样做:

doSomething = function(id,childid,key){
  var str = id + childid + key;
  console.log(str);
};
doSomething(myObj.id,myObj.child.id,myObj.child.key1);

我想简化为:

doSomething2 = function(incObj){
  //myObj.child.key1;
  var str = incObj.id + ' ' + incObj.child.id + ' ' + incObj.child.key;
  //str = 'AA BB CC';
   console.log(str);

}
doSomething2(myObj.child.key1);

有没有一种干净/简单的方法来做到这一点?

【问题讨论】:

    标签: javascript object nested


    【解决方案1】:

    您已经自己找到了答案。您只需传递对象即可。

    对象:

    myObj = {
       id:'AA',
       child:{
          id:'BB',
          key1:'CC'
       },
       child2:{
          id:'DD',
          key1:'EE'
       },
    
    };
    

    功能:

    doSomething2 = function(incObj){
      //myObj.child.key1;
      var str = incObj.id + ' ' + incObj.child.id + ' ' + incObj.child.key1;
       console.log(str);
    
    }
    doSomething2(myObj);
    

    【讨论】:

      【解决方案2】:

      你这样做的方式:

      myObj = {
         id:'AA',
         child:{
            id:'BB',
            key1:'CC'
         },
         child2:{
            id:'DD',
            key1:'EE'
         },
      
      };
      
      doSomething2 = function(incObj){
        //myObj.child.key1;
        var str = incObj.id + ' ' + incObj.child.id + ' ' +incObj.child.key1;
        //str = 'AA BB CC';
         console.log(str);
      
      }
      doSomething2(myObj);

      myObj = {
         id:'AA',
         child:{
            id:'BB',
            key1:'CC'
         },
         child2:{
            id:'DD',
            key1:'EE'
         },
      
      };
      
      var config = {
        "child" : "child2",
        "key" :"key1"
      }
      
      doSomething2 = function(incObj, config){
        //myObj.child.key1;
        var str = incObj.id + ' ' + incObj[config.child].id + ' ' +incObj[config.child][config.key];
        //str = 'AA BB CC';
         console.log(str);
      
      }
      doSomething2(myObj,config);

      【讨论】:

      • 这仅适用,如果我正在寻找 key1,如果我正在寻找 child1 或 key2 怎么办?
      • 查看更新的代码 sn-p。这可能是一种方法。
      猜你喜欢
      • 2018-07-26
      • 2020-10-10
      • 1970-01-01
      • 2017-08-10
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      • 2020-12-05
      • 1970-01-01
      相关资源
      最近更新 更多