【发布时间】:2018-04-18 22:03:57
【问题描述】:
我正在尝试为 n=3 动态创建一个看起来像这样的 n 暗淡对象 finalObj
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
与
item ={'key1':'value1','key2':'value2','key3':'value3'}
进入
parent.children[ item['key1']].children[ item['key2']].children[ item['key3']]
本质上是
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
}
但是,我被困在这里如何以这种方式完成它。有什么想法吗?
【问题讨论】:
标签: javascript dictionary key