摘自elementUI,getPropByPath方法

解析属性,如:obj.user.name

function getPropByPath(obj, path, strict) {
    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) {
        if (!tempObj && !strict) break;
        let key = keyArr[i];
        if (key in tempObj) {
            tempObj = tempObj[key];
        } else {
            if (strict) {
                throw new Error('please transfer a valid prop path to form item!');
            }
            break;
        }
    }
    return {
        o: tempObj,
        k: keyArr[i],
        v: tempObj ? tempObj[keyArr[i]] : null
    };
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,781评论 1 32
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,979评论 0 13
  • 如果你以为这个世界不明智, 那是因为你还没有开悟到明智, 世界本好,人类无视。 太多的贪欲...
    烽火煤阅读 213评论 0 0
  • 两个月前,在贵阳机场的登机口,我给父亲挥手道别,手里握着飞往杭州的机票,就此,踏上了这异乡的土地。 我以为我冲破了...
    Twy文艳阅读 662评论 1 1
  • 爱是突然心中为之疯狂 爱是两个没有血缘关系的人 有着超过血缘的亲密 爱是你我 爱是自由 你是你,我是我 你有时不是...
    温和滴阳光阅读 344评论 0 5

友情链接更多精彩内容