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]
res
function 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