- 时间:2022-10-29 03:35 编辑: 来源: 阅读:305
- 扫一扫,手机访问
摘要:多层嵌套JavaScript对象值
<源码交易>
看看lodash _的官方用法。get (object,path,[默认值])根据object对象的路径path获取值。 如果分析值未定义,它将被defaultValue替换。 参数obj (Object):要检索的对象。 Keys(Array|string):获取属性的路径。 [defaultVal] (*):如果解析的值未定义,将返回该值。 直接实现代码:函数deep get (obj,keys,defaultval) {return((!Array.isArray(keys)?keys.replace(/\[/g,'.').替换(/\]/g,' ')。拆分('.') :按键)。reduce((o,k)= & gt;(o || {})[k],obj)| | default val);}var obj = { a: [ { b: { c: 3,},},],e: { f: 1,},};console.log(deepGet(obj,' e . f '));// 1console.log(deepGet(obj,['e ',' f '])//1 console . log(deep get(obj,' a . x '));//undefinedconsole . log(deep get(obj,' a.x ','-')//-console . log(deep get(obj,' a[0]. b . c ')//3 console . log(deep get(obj,['a ',0,' b ',,' c '])//3