目录
1 lodash-get
lodash中有个get函数,支持从对象中方便的获取对应的属性值
总的来说有几个特点:
- 字符串或者数组形式的嵌套获取对象属性值
- 获取不到时候的默认值
2 源码分析
function get(object, path, defaultValue) {
let obj = object;
// 将字符串改造为数组形式
if (typeof path === "string") {
const reg = /^[\[\].]+/g;
path = path.match(reg);
}
for (const key of path) {
if (!obj) {
return defaultValue;
}
obj = object[key];
}
return obj === undefined ? defaultValue : obj;
}
export default get;
3 测试
const object = { a: [{ b: { c: 3 } }] };
// console.log(get(object, ["a", "0", "b", "c"], "default")); // 输出: 3
console.log(get(object, "a[0].b.c", "default")); // 输出: "default"