首页 > 试题广场 >

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

[编程题]根据包名,在指定空间中创建对象
  • 热度指数:35734 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
根据包名,在指定空间中创建对象

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


输出描述:
{a: {test: 1, b: {c: {d: {}}}}}
头像 是明啊
发表于 2021-07-28 11:33:42
一目了然 function namespace(oNamespace, sPackage) { let tmpWrap = oNamespace; sPackage.split('.').forEach(item => { tmpWrap = tmpWrap[i 展开全文
头像 Daniannn
发表于 2021-06-24 19:59:56
function namespace(oNamespace, sPackage) { const arr = sPackage.split('.'); let o = oNamespace; for(let i = 0;i<arr.length ;i++) 展开全文
头像 前端笨b一枚
发表于 2020-04-19 22:46:40
function namespace(oNamespace, sPackage) { var pointer = oNamespace; function fn(oNamespace, sPackage) { var list = sPackage.split('.'); if 展开全文
头像 牛客203535434号
发表于 2021-07-14 18:50:50
比 for 循环好看点儿,哈哈 function namespace(oNamespace, sPackage) { let keys = sPackage.split('.') keys.reduce((currentObj, key) => { if(ty 展开全文
头像 木支木兮
发表于 2021-05-12 19:42:17
7行代码求轻虐 function namespace(oNamespace, sPackage) { const o = sPackage?.split('.') || []; const k = o.shift(); if (!k) return; if (Object.prototype.to 展开全文
头像 JPG201901021730312
发表于 2021-07-31 11:10:26
主要是借用的是对象地址引用思路 首先包名需要挨个读取key值,可联想到遍历 然后判断指定空间中是否存在读入的key, 不存在,很容易想到直接开辟新空间 存在,那么需要把当前读取key的空间对象重新赋值指定空间对象 这么存在处理最后得到的指定空间是个空对象,所以在逻辑最初我们将oNamespac 展开全文
头像 芃丞
发表于 2021-12-18 11:35:46
第一种解法:递归 // 逻辑过程 // 遍历传进的对象中有哪些属性 每次把找到的属性去数组中找 找到了就创建对象 没找到就遍历下个属性 // 是不是数组的最后一个元素 // 如果不是 就截取未遍历的部分 递归调用 // 第一次 namespace({a: {tes 展开全文
头像 牛客994207367号
发表于 2021-07-01 21:17:24
不断往oNamespace内遍历匹配包名,使用临时变量inner保存oNamespace内部对象地址,按照包名修正内部对象。 function namespace(oNamespace, sPackage) { let arr = sPackage.split('.'); let i 展开全文
头像 忘魂儿
发表于 2021-09-22 20:21:38
function namespace(oNamespace, sPackage) { //包名用.分割形成名为keys的数组 let keys = sPackage.split('.') //对数组使用高阶函数reduce //用法 [].reduce((先前的返回值,当前item的 展开全文
头像 诗云panther
发表于 2021-08-16 17:01:03
function namespace(oNamespace, sPackage) { var arr = sPackage.split("."); var res = oNamespace; for(var i=0, len = arr.length;i< 展开全文