如果遇到不确定的层级,且需要取深层的对象的值的需求
在这里提供一种比较妥当的通用方法:
/*
key:字符串 比如 “a.b.c”
data:取值的对象
*/
const getDeepVal = (key, data) => {
return key.split('.').reduce((p, c) => {
return p && p[c];
}, data);
};
使用方式:
/* 定义方法 */
const getDeepVal = (key, data) => {
return key.split('.').reduce((p, c) => {
return p && p[c];
}, data);
};
let obj = {
a: {
b: {
g: '我是凯神',
},
d: '我是达摩',
e: {
f: '我是菩提',
},
},
};
/* 使用 */
console.log('取值:', getDeepVal('a.b.g', obj));
当前的方法类,已经添加校验,如果取不到对象的值,会返回undefined。 可随取随用。