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

2015-06-16 13:47:25 +08:00
 snowrain

根据包名,在指定空间中创建对象
输入描述:

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

输出描述:

{a: {test: 1, b: {c: {d: {}}}}}

这个方法怎么写?

function namespace(oNamespace, sPackage) {

}
2932 次点击
所在节点    JavaScript
3 条回复
yangg
2015-06-16 14:13:12 +08:00
写了一个,你把参数颠倒就行了 http://codepen.io/yangg/pen/mJMBjO
snowrain
2015-06-16 14:42:32 +08:00
@yangg 非常感谢。
不过 var p = top; 这一句好像可以不用?
直接操作 top ,最后返回 package 也可以吧。
iNaru
2015-06-16 15:14:03 +08:00
function namespace(oNamespace, sPackage) {
var temp = oNamespace;
sPackage.split('.').forEach(function(i){
temp = (typeof temp[i] == 'object' && (i in temp) ? temp[i] : temp[i] = {});
});
return oNamespace
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/198951

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX