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

输入描述:
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] } } }

链接来自牛客网:根据包名,在指定空间中创建对象

时间: 2024-10-23 00:59:20

根据包名,在指定空间中创建对象的相关文章

Linux中什么时候用包名、什么时候用包全名、以及RPM包的安装、升级与卸载

1.在安装和升级时使用包全名,查询卸载时用包名 2.RPM包安装 上面的--nodeps只能在做实验时用!因为如果写上了的话,万一这个软件包真的依赖于其他包,即使安装完了此rpm包,也是不可用的! 3.RPM包升级 Linux中严格区分大小写 4.RPM包卸载 注意:用光盘安装时要先挂载再在指定路径下安装,但是卸载时却可以在任何位置执行软件卸载,因为卸载时,系统是通过包名到后台数据库中搜索的

在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类

一.背景 最近在使用记事本编写带有包名并且有继承关系的java代码并运行时发现出现了很多错误,经过努力一一被解决,今天我们来看一下会遇见哪些问题,并给出解决办法. 二.测试过程 1.父类代码 1 package com.hafiz.zhang; 2 3 public class Fu 4 { 5 private Integer i ; 6 7 public void sayHello(String name) { 8 System.out.println("Hello " + name

新浪微博appkey申请的时候 会出现Android包名 和 Android签名 该怎么填写?

这个包名 是什么?  签名是什么? 网上没有确切的答案!网上说的 根本就一点都不明白! android包名就是AndroidManifest.xml中package所对应的名字. 签名是你给你的应用打keystore签名时最后一步会生成的MD5,Eclipse下生成的MD5为 07:1E:BD:C1:13:AF:1D:B3:91:18:A3:50:29:91:43:F4 这样的格式,你填进去会发现新浪要求的是32位数字小写字母,把前面的这串数字中的冒号去掉,字母小写即可.

react-native修改android包名

安卓已包名作为应用的唯一id,相对iOS来说改起来就不是那么方便,但为了能正式发布自己的应用,还是得改过来. 假设包名为com.exease.etd.objective,以下地方需要修改. 首先是两个java文件:android/app/src/main/java/com/PROJECT_NAME/MainActivity.java和/MainApplication.java,修改第一行为package com.exease.etd.objective; 然后是安卓的描述文件android/ap

友盟消息推送新版 SDK 为什么要支持多包名推送?

友盟消息推送 Android SDK 升级至 v 1.4.1 版本了!那问题来了,v 1.4.1 版本有什么新功能呢? “支持多包名推送”!新版 SDK 下载地址 开发者都知道,对于各种 Android 应用,特别是 Android 游戏而言,针对不同的渠道定制版本.使用不同的包名是运营中常见的一环,但是这样会导致后续使用消息推送时工作量过大,每个包都要单独推送,费时费力,还难以做到精准推送,效率低下……在不改变使用多包名的现状下,该如何提升消息推送效率? 友盟消息推送团队新推出的“多包名推送”

同一个项目中存在完全相同的包名和类名如何解决调用问题

项目中遇到有一个类,在两个jar包中都存在,而且类所在的包名和类名完全一致,解决办法有两种: 1.常用办法 清除项目中过时的那个jar包,推荐方式. 2.如果两个都不能清除,则在使用过程中动态指定加载的jar包即可.以rt.jar中javax.xml.ws.Service为例,代码如下 File file = new File("f:\\rt.jar"); URL url = file.toURI().toURL(); ClassLoader classLoader = new URL

AndroidManifest.xml里加入不同package的component (Activity、Service里android:name里指定的值一般为句号加类名),可以通过指定完全类名(包名+类名)来解决

我们都知道对于多个Activity如果在同一个包中,在Mainfest中可以这样注册 Xml代码   <span style="font-size: small;"><?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package=&

攻城狮在路上(壹) Hibernate(三)--- 属性访问、命名策略、派生属性、指定包名等

一.hibernate访问持久化类属性的策略: 在<property>元素中的access属性用于指定Hibernate访问持久化类属性的方式. 常见的方式如下: 1.property:默认值.hibernate通过相应的getXXX()和setXXX()方法. 2.field:hibernate运用反射机制直接访问类的属性. 3.自定义方式:自己写一个实现org.hibernate.property.PropertyAccessor接口的类,在access属性中写类的全限定名. 举例: ?

Android - 在一个应用程序中启动另外一个已经安装的应用程序或系统程序(前提是要知道该应用程序的主activity和包名)

//组件名称,第一个参数是应用程序的包名,后一个是这个应用程序的主Activity ComponentName com = new ComponentName("com.antroid.Test", "com.antroid.Test.TestActivity"); Intent  intent = new Intent(); //设置部件 intent.setComponent(com); startActivity(intent); 我们也可以使用下面的代码启动