码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2017-07-26 17:51:41      阅读:1346      评论:0      收藏:0      [点我收藏+]

标签:属性   return   path   ace   ems   error   erro   items   console   

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

标签:属性   return   path   ace   ems   error   erro   items   console   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!