牛客:FED24 根据包名,在指定空间中创建对象 解题方案

99 阅读1分钟

题目链接

根据包名,在指定空间中创建对象_牛客题霸_牛客网 (nowcoder.com)

描述

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

输入描述:

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

输出描述:

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

解答

function namespace(oNamespace, sPackage) {
  let package = sPackage.split('.')

  package.reduce((pre, cur) => {
    if (pre[cur] instanceof Object === false ) {
      pre[cur] = {}
    }

     return pre[cur]
  }, oNamespace)
}

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

其他方案

遍历、递归等都可以