Fonction récursive tableau à plusieurs dimensions
Résolu
Nalianne
-
Nalianne Messages postés 11 Statut Membre -
Nalianne Messages postés 11 Statut Membre -
Bonjour,
Je dois coder une fonction récursive en javascript afin de parcourir un objet possédant plusieurs sous-objets:
objet {
nom: ...,
prenom: ....,
adresse: {
rue: ...,
ville: ...
}}
Je n'arrive pas du tout à voir comment il serait possible de le faire. Je ne suis pas très à l'aise avec le récursif...
Est-ce que quelqu'un serait capable de m'aider ?
Merci !
Je dois coder une fonction récursive en javascript afin de parcourir un objet possédant plusieurs sous-objets:
objet {
nom: ...,
prenom: ....,
adresse: {
rue: ...,
ville: ...
}}
Je n'arrive pas du tout à voir comment il serait possible de le faire. Je ne suis pas très à l'aise avec le récursif...
Est-ce que quelqu'un serait capable de m'aider ?
Merci !
A voir également:
- Fonction récursive tableau à plusieurs dimensions
- Tableau word - Guide
- Fonction si et - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
1 réponse
Bonjour,
J'ai réussi à trouver la solution à mon problème:
Et je fais une boucle sur les objets de mon tableau pour obtenir le résultat escompté (que je stocke dans un nouveau tableau)
J'ai réussi à trouver la solution à mon problème:
/* Will flatten all objects and send back columns and sub-columns at the same level */
var flattenObject = function(ob) {
var toReturn = {};
/* For each object */
for (var i in ob) {
if (!ob.hasOwnProperty(i)) continue;
/* If it is an other object */
if ((typeof ob[i]) == 'object') {
var flatObject = flattenObject(ob[i]);
/* For each object in the object it will return the name key.key-under */
for (var x in flatObject) {
if (!flatObject.hasOwnProperty(x)) continue;
toReturn[i + '.' + x] = flatObject[x];
}
} else // If there is no other under object
toReturn[i] = ob[i];
}
return toReturn;
};
Et je fais une boucle sur les objets de mon tableau pour obtenir le résultat escompté (que je stocke dans un nouveau tableau)