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

Posted 【云】风过无痕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js对象通过属性路径获取属性值 - getPropByPath相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

js获取对象属性值的2种方法

怎么获取数组里对象的某一项属性值

如何使用字符串属性路径获取/设置属性值?

ajax返回为对象,怎样得到对象的属性值

如何在js中获取session中的对象的属性值

SoapUI对于Json数据进行属性值获取与传递的问题