Je possède un objet appelé MyObject
et une méthode appelée createEntry()
qui vise à créer une nouvelle propriété pour MyObject
et des sous-propriétés pour la propriété ou juste la sauter entièrement si elle existe déjà.
Mon code :
var MyObject = {
createEntry: function (val1, val2, val3, val4) {
this[val1] = this[val1] || {};
this[val1][val2] = this[val1][val2] || {};
this[val1][val2][val3] = val4;
}
};
MyObject.createEntry("val1", "val2", "val3", "val4");
Comme le montre la fonction ci-dessus, j'essaie de créer un nouveau sous-objet pour chaque argument de la méthode createEntry()
sauf pour les deux derniers, où val3
est une propriété
ou un méthode
et val4
en est la valeur.
Avec ma méthode dans son état actuel, je ne peux atteindre que jusqu'au niveau 3 avec les suivants nécessitant un code de plus en plus long. Je suppose que cela peut être réalisé avec une boucle while
, mais je n'ai pas encore trouvé comment le faire.
Question : Comment puis-je créer des sous-objets illimités en fonction du nombre d'arguments passés à la fonction ci-dessus de manière arborescente qui ressemble à ce qui suit :
var MyObject = {
val1: {
val2 {
val3: val4
}
}
}