1. 程式人生 > >根據包名,在指定空間中創建對象

根據包名,在指定空間中創建對象

targe 保留 bsp pre www min 包名 for nal

根據包名,在指定空間中創建對象

輸入描述:
namespace({a: {test: 1, b: 2}}, ‘a.b.c.d‘)
輸出描述:
{a: {test: 1, b: {c: {d: {}}}}}

function namespace(oNamespace, sPackage) {
     var packageArr = sPackage.split(.);
     var curObj = oNamespace;     // 保留對原始對象的引用
     for(var i=0, len=packageArr.length; i<len; i++){
        
if(packageArr[i] in oNamespace){ // 空間名在對象中 if(typeof oNamespace[packageArr[i]] !== object){ // 為原始值 oNamespace[packageArr[i]] = {}; // 將此屬性設為空對象 } }else{ // 空間名不在對象中,建立此空間名屬性,賦值為空 oNamespace[packageArr[i]] = {}; } oNamespace
= oNamespace[packageArr[i]]; // 將指針指向下一個空間名屬性 } return curObj; } console.log(namespace({a: {test: 1, b: 2}}, a.b.c.d)); //{ a: { test: 1, b: { c: [Object] } } }

鏈接來自牛客網:根據包名,在指定空間中創建對象

根據包名,在指定空間中創建對象