在Javascript中修改字典键
我正在尝试动态创建一个n维对象finalObj,对于n=3,它看起来像这样在Javascript中修改字典键,javascript,dictionary,key,Javascript,Dictionary,Key,我正在尝试动态创建一个n维对象finalObj,对于n=3,它看起来像这样 children = { 'value1' : 'some1' , 'value2' : 'some2' , 'value3' :'some3' } item = { 'key1' : 'value1' , 'key2':'value2' , 'key3':'value3' } 基本上,生成的对象是这样的 finalObj = { parent : { 'some1' : { 'some2' : { '
children = { 'value1' : 'some1' , 'value2' : 'some2' , 'value3' :'some3' }
item = { 'key1' : 'value1' , 'key2':'value2' , 'key3':'value3' }
基本上,生成的对象是这样的
finalObj = { parent : { 'some1' : { 'some2' : { 'some3':{} } } } }
我正在下面创建一个n深度的对象
var parent ={}
var finalObj
function makechildren( children, depth ){
if (depth>0){
makechildren({children}, depth-1);
}
else
{ finalObj=children
console.log('finalObj',finalObj)
}
return finalObj
}
Promise.resolve(makechildren(parent,4))
.then(function(resp){
console.log("resp is",resp);
})
这张照片是:
{ "children": { "children": { "children": { "children": {} } } } }
现在,如何转向
parent.children.children.children
与
进入
这基本上是
parent.children['value1'].children['value2'].children['value3']....
我曾尝试复制原始字典,用循环更改键,并将每个parent.children[item['key1']]分配给多维字典的其余部分,但没有做得太多
parent1 = JSON.parse(JSON.stringify(parent))
for (i in Object.keys(parent))
{
parent1[ item['key'+i] ] = parent.children
}
然而,我在这里停留在如何以这种方式完成它。有什么想法吗?循环查看
项中的值,使用每个值从子项中获取相应的值,并将其用作新对象的属性。要创建嵌套对象,请使用变量将对象保持在当前深度,每次通过循环时都会更新该深度
children={'value1':'some1','value2':'some2','value3':'some3'};
项={'key1':'value1','key2':'value2','key3':'value3'};
finalObj={parent:{}};
var cur=finalObj.parent;
Object.values(item.forEach)(val=>{
cur[children[val]]={};
cur=cur[儿童[val]];
});
log(JSON.stringify(finalObj))代码>
parent.children['value1'].children['value2'].children['value3']....
parent1 = JSON.parse(JSON.stringify(parent))
for (i in Object.keys(parent))
{
parent1[ item['key'+i] ] = parent.children
}