如何编写JS函数实现通过点分隔查找路径获取对象对应值
JavaScript 对象路径属性查找函数实现
我们可以先将点分隔的路径字符串拆分为属性名数组,再逐层遍历对象获取对应属性,遇到不存在的属性直接返回undefined即可,完整实现如下:
const lookup = (obj, path) => { // 将路径按点分割为属性数组 const keys = path.split('.'); // 逐层遍历查找属性 return keys.reduce((current, key) => { // 遇到空层级直接返回,避免抛出类型错误 return current?.[key]; }, obj); } // 测试示例 const obj = { something1: { something2: "Mouse", something3: 'Cat' } }; const path = 'something1.something2' console.log(lookup(obj, path)); // 输出:'Mouse'
如果传入的路径不存在,函数会直接返回undefined,不会触发运行时报错。
内容的提问来源于stack exchange,提问作者Ismail Beg
相关产品推荐
相关产品推荐

