首页 > Web开发 > 详细

js对象通过属性路径获取属性值 - getPropByPath

时间:2017-07-26 16:16:02      阅读:2674      评论:0      收藏:0      [点我收藏+]
function getPropByPath(obj, path) {
        let tempObj = obj;
        path = path.replace(/\[(\w+)\]/g, ‘.$1‘);
        path = path.replace(/^\./, ‘‘);

        let keyArr = path.split(‘.‘);
        let i = 0;

        for (let len = keyArr.length; i < len - 1; ++i) {
            let key = keyArr[i];
            if (key in tempObj) {
                tempObj = tempObj[key];
            } else {
                throw new Error(‘[iView warn]: please transfer a valid prop path to form item!‘);
            }
        }
        return {
            o: tempObj,
            k: keyArr[i],
            v: tempObj[keyArr[i]]
        };
    }

如: var obj = {name:‘objname‘, items:[{value: 0},{value: 1}]}, path = ‘items.0.value‘;

   console.log( getPropByPath(obj, path).v );

结果: 0

js对象通过属性路径获取属性值 - getPropByPath

原文:http://www.cnblogs.com/xtreme/p/7240035.html

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