题解 | #根据包名,在指定空间中创建对象#

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

http://www.nowcoder.com/practice/a82e035501504cedbe881d08c824a381

function namespace(oNamespace, sPackage) {
  //包名用.分割形成名为keys的数组
  let keys = sPackage.split('.')
  //对数组使用高阶函数reduce
  //用法 [].reduce((先前的返回值,当前item的值)=>{return },pre初始值)
  keys.reduce((pre, cur) => {
    //判断oNamespace['a']是否为object类型
    if (typeof pre[cur] != 'object') {
      //不是,就给个空对象\n            pre[cur]={};
    }
    //是,那就返回出去,充当下次的pre值
    return pre[cur] //{test: 1, b: 2}
    // pre                 cur         pre[cur]
    // {a: {test: 1, b: 2}}       a        {test: 1, b: 2}
  }, oNamespace)
  return oNamespace
}
全部评论

相关推荐

优秀的大熊猫在okr...:多益:此贼,必有同谋,按律,该当连坐!
你不能接受的企业文化有哪...
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务