首页 > 其他 > 详细

动态获取深层次的对象的属性值

时间:2020-05-27 18:30:11      阅读:64      评论:0      收藏:0      [点我收藏+]

对象

  • let obj = {
        user: {
            name: "zhang",
            age: 20,
            school: {
                name: "清华",
                class: 3,
                grader: 1
            }
        }
    }
    
  • 例:获取 obj.user.school.name

    1. 首先使用 split,转为数组
    2. 然后使用 shift() 方法每次取出最前面的属性名, 存放在 curr
    3. 新建一个 res 对象,先要判断 res[curr] 是否为 undefined, 让 res = res[curr]
    4. 最后返回 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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!