实现类似lodash.get方法
根据
object对象的path路径获取值。 如果解析 value 是undefined会以defaultValue取代。
_.get(object, path, [defaultValue])
例子
var object = { 'a': { 'b': { 'c': 3 } }};
_.get(object, 'a.b.c', 'default');
// => 3
实现
const get = (obj, attrs, default = null) => {
let arr = attrs.split('.');
for(let i = 0; i < arr.length; i++){
// 查看是否存在子叶
if(Object.prototype.toString.call(obj[arr[i]]) === '[object Object]'){
obj = obj[arr[i]]; // 存在子叶 => 将子叶的键名与key值对应起来
}else{
if(obj[arr[i]]){
return obj[arr[i]]
}else{
break // 不存在attrs里面的键,则跳出
}
}
}
return default; // 没找到
}