根据包名,在指定空间中创建对象

详细描述:

输入:namespace({a: {test: 1, b: 2}}, 'a.b.c.d')
输出:{a: {test: 1, b: {c: {d: {}}}}}

function namespace(oNamespace, sPackage) {
    var str = sPackage;
    var arr = str.split('.');
    var len = arr.length;

    // {arr[0]:{text1,arr[1]:{arr[2]:{arr[3]:{}}}}}
    var obj = oNamespace; //保留对原始对象的引用

    for(var i = 0; i < len; i++){
        if(arr[i] in oNamespace){ //空间名在对象中
            if(typeof oNamespace[arr[i]] != 'object'){ //为原始值
                oNamespace[arr[i]] = {}; //将此属性设置为空对象
            }
        }else{  //空间名不在对象中,建立此属性,赋值为空
            oNamespace[arr[i]] = {};
        }

        oNamespace = oNamespace[arr[i]];
    }
    return obj;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • 2017年11月12号 星期天 晴 今天虽然是星期天,但是依然要早起,八点钟就要到...
    星曦宝贝阅读 299评论 0 0
  • 出差途中在飞机上看了一部电影《寻找心中的你》,电影讲述的是一个年轻人在邂逅一个女生后疯狂寻找的故事。 男生是在一次...
    人与海阅读 818评论 0 1
  • 失恋后你会怎么办? 悲伤?睡觉?不吃饭? 抽烟?喝酒?不恋爱? 不,这都是内心不够成熟的人的做法,爱你的人不会忍心...
    对没错树苗儿阅读 291评论 2 3
  • 现在的我们处于一个好尴尬的处境中,处于适婚的年龄,却找不到合适的人。 只是偶然的机会,发现曾经被我们调侃的两个人默...
    逆流2177阅读 165评论 0 1