let obj = {
user: {
name: "zhang",
age: 20,
school: {
name: "清华",
class: 3,
grader: 1
}
}
}
例:获取 obj.user.school.name
split,转为数组shift() 方法每次取出最前面的属性名, 存放在 curr 中res 对象,先要判断 res[curr] 是否为 undefined, 让 res = res[curr]resfunction fn(path, obj) {
let res = obj,
curr,
keys = path.split(".");
while (curr = keys.shift()) {
if(!res[curr]) {
return "undefined"
} else {
res = res[curr]
}
}
return res;
}
let result = fn("user.school.name", obj)
console.log(result);

原文:https://www.cnblogs.com/chlai/p/12975235.html