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));
    })
  • 相关阅读:
    Android基础
    Android基础
    Java小项目——多线程弹球
    Java小项目——抽奖系统
    Java小项目——五子棋
    Java小项目——画板
    Java基础——swing登录界面
    Java基础——类的继承
    实验室资料说明
    20180919 百信、百度面试
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5129033.html
Copyright © 2011-2022 走看看