zoukankan      html  css  js  c++  java
  • [Javascript] Safe Nested Object Inspection

    A common problem when dealing with some kinds of data is that not every object has the same nested structure. lukeskywalker.parents.father.isjedi works, but anakinskywalker.parents.father.isjedi throws an exception, because anakin_skywalker.parents.father is undefined. But we can reduce a path to provide safe default values and avoid exceptions when walking the same path on non-homogenous objects

    let han, anakin, luke;
    
    han = {
      name: 'han',
      parents: {
        father: {
          jedi: true,
        },
        mother: {
          jedi: false
        }
      }
    };
    
    anakin = {
      name: 'anakin',
      parents: {
        father: {
          jedi: false,
        },
        mother: {
          jedi: false
        }
      }
    };
    
    luke = {
      name: "luke",
      parents: {
        mother: {
          jedi: false
        }
      }
    };
    
    
    let worries = [
      han, anakin, luke
    ];
    
    function fatherIsJedi(person){
      let path = "parents.father.jedi";
      
      return path.split('.').reduce( (acc, curr)=>{
        if(acc){
          return acc[curr]; 
        }
        
        return false;
      }, person );
    };
    
    worries.forEach( (person)=> {
      console.log(`${person.name}'s fathter is a Jedi: `, fatherIsJedi(person));
    })
  • 相关阅读:
    迷宫
    【NOIP2001普及组】最大公约数和最小公倍数问题
    latex online tool
    连续自然数和
    又是毕业季Ⅰ
    区间素数
    【AHOI2005】约数研究
    【NOIP2011提高组】计算系数
    【NOIP2012普及组】寻宝
    plsql 导出oracle数据库
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5129033.html
Copyright © 2011-2022 走看看