Je suis la restructuration d'un objet en javascript pour transformer un objet plat:Quelle est la meilleure façon de restructurer un objet javascript?
{
'we' : 'are',
'the' : 'knights',
'who' : 'say',
'ni' : '!!!'
}
dans un objet dans lequel certains des éléments précédemment dans l'objet plat sont contenus dans un enfant de l'objet plat d'origine:
{
'we' : 'are',
'the' : 'knights',
'shrubbery' : {
'who' : 'say',
'ni' : '!!!'
}
}
Je peux faire cette restructuration en faisant référence à une suppression puis, comme ceci:
var knights = {
'we' : 'are',
'the' : 'knights',
'who' : 'say',
'ni' : '!!!'
};
knights.shrubbery = {'who':knights.who,
'ni':knights.ni};
delete knights.who;
delete knights.ni;
mais cela semble inélégant. Existe-t-il un meilleur moyen de déplacer les attributs d'un objet vers un objet différent ou de regrouper autrement les attributs d'un objet dans un enfant de cet objet? En fin de compte, ce que j'essaie de faire est de former un objet plat dans un arbre de données, dans lequel l'objet racine peut contenir des groupes qui contiennent des sous-groupes et ainsi de suite. Quelque chose comme tourner ceci:
{'leaf1':'',
'leaf2':'',
'leaf3':'',
'leaf4':'',
'leaf5':'',
'leaf6':'',
'leaf7':'',
'leaf8':'',
'leaf9':''
}
dans ce:
{'leaf1':'',
'leaf2':'',
'leaf3':'',
'groups' : [
{
'leaf1':''
},{
'leaf1':'',
'leaf2':'',
'groups':[
{
'leaf7':'',
'leaf8':'',
'leaf9':''
}
]
}
]
}
Pouvez-vous donner un exemple dans quel contexte vous essayez de le faire? La question en ce moment est fortement basée sur l'opinion. –
Pourquoi est-ce inélégant? Vous pouvez simplement déplacer ceci dans une fonction qui accepte les paramètres et utilise ces paramètres au lieu de coder en dur les valeurs, mais cela aboutirait à la même chose. – Ian
Je suis juste habitué à 'jquery.append', où je peux ajouter un élément DOM à un autre et l'élément n'existe plus dans son emplacement d'origine. Je me demandais s'il y avait quelque chose de similaire en javascript pour déplacer les attributs. – ckersch