zoukankan      html  css  js  c++  java
  • js对象通过属性路径获取属性值

    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

  • 相关阅读:
    Ubuntu
    SSH
    Markdown
    Mac OS 上的一些骚操作
    Linux Bash
    JConsole
    IDEA
    Groovy
    Github
    Git
  • 原文地址:https://www.cnblogs.com/xtreme/p/7240035.html
Copyright © 2011-2022 走看看