我正在用 javascript 重构一个对象来转换一个平面对象:
{
'we' : 'are',
'the' : 'knights',
'who' : 'say',
'ni' : '!!!'
}
到一个对象中,其中先前在平面对象中的一些项目包含在原始平面对象的子项中:
{
'we' : 'are',
'the' : 'knights',
'shrubbery' : {
'who' : 'say',
'ni' : '!!!'
}
}
我可以通过引用然后删除来进行这种重组,如下所示:
var knights = {
'we' : 'are',
'the' : 'knights',
'who' : 'say',
'ni' : '!!!'
};
knights.shrubbery = {'who':knights.who,
'ni':knights.ni};
delete knights.who;
delete knights.ni;
但这似乎不优雅。有没有更好的方法将一个对象的属性移动到另一个对象,或者将一个对象的属性捆绑到该对象的子对象中?
最终,我要做的是将平面对象形成数据树,其中根根对象可以包含包含子组等的组。像这样转:
{'leaf1':'',
'leaf2':'',
'leaf3':'',
'leaf4':'',
'leaf5':'',
'leaf6':'',
'leaf7':'',
'leaf8':'',
'leaf9':''
}
进入这个:
{'leaf1':'',
'leaf2':'',
'leaf3':'',
'groups' : [
{
'leaf1':''
},{
'leaf1':'',
'leaf2':'',
'groups':[
{
'leaf7':'',
'leaf8':'',
'leaf9':''
}
]
}
]
}