lodash get实现

简介: lodash get实现
function get(source, path, defaultValue = undefined) {
  // a[3].b -> a.3.b -> [a,3,b]
  // path 中也可能是数组的路径,全部转化成 . 运算符并组成数组
  const paths = path.replace(/\[(\d+)\]/g, ".$1").split(".");
  let result = source;
  for (const p of paths) {
    // 注意 null 与 undefined 取属性会报错,所以使用 Object 包装一下。
    result = Object(result)[p];
    if (result == undefined) {
      return defaultValue;
    }
  }
  return result;
}
// 测试用例
console.log(get({ a: null }, "a.b.c", 3)); // output: 3
console.log(get({ a: undefined }, "a", 3)); // output: 3
console.log(get({ a: null }, "a", 3)); // output: 3
console.log(get({ a: [{ b: 1 }] }, "a[0].b", 3)); // output: 1
目录
相关文章
|
JavaScript
vue3 使用第三方插件问题 bundler to alias “vue“ to “vue/dist/vue.esm-bundler.js
vue3 使用第三方插件问题 bundler to alias “vue“ to “vue/dist/vue.esm-bundler.js
vue3 使用第三方插件问题 bundler to alias “vue“ to “vue/dist/vue.esm-bundler.js
|
2月前
|
前端开发
React Sass
10月更文挑战第12天
33 0
|
JavaScript 前端开发 Cloud Native
Vue.js和TypeScript:如何完美结合
Vue.js和TypeScript:如何完美结合
102 0
|
索引
Lodash _.数组方法
Lodash _.数组方法
93 0
|
网络架构
lodash函数绑定新函数
lodash函数绑定新函数
88 0
lodash函数绑定新函数
lodash函数学习9
lodash函数学习9
98 0
lodash函数学习9
lodash函数学习8
lodash函数学习8
100 0
lodash函数学习8
lodash函数学习5
lodash函数学习5
104 0
lodash函数学习5
lodash函数学习6
lodash函数学习6
105 0
lodash函数学习6
lodash函数学习7
lodash函数学习7
90 0
lodash函数学习7