Lodash.get,原理实现

38 阅读1分钟

Lodash.get,原理实现

function get(obj,path,defaultValue="undefined"){
  //先将path处理成统一格式
  let newPath = [];
  if(Array.isArray(path)){
    newPath = path;
  } else {
    // 字符串类型 obj[a] obj.a  这里把'[' 替换成'.' ']' 替换成''
    newPath = path.replace(/[/g,'.').replace(/]/g,'').split('.');//最后转成数组
    console.log(newPath);
  }
  //obj 替换成 obj.a 逐步调用
  return newPath.reduce((o,k) => {
    return (o || {})[k]; 
  },obj) || defaultValue
};

往期内容

点击链接查看:www.yuque.com/chuxin-cs/i…