⊗jsPmRcMS 278 of 505 menu

Récursion et structures multidimensionnelles en JavaScript

Soit un tableau multidimensionnel de niveau d'imbrication arbitraire, par exemple, comme celui-ci :

let arr = [ 1, [ 2, 7, 8 ], [ 3, 4, [5, [6, 7]], ] ];

Comme vous pouvez le voir, ce tableau a une structure complexe, et on suppose que cette structure peut être arbitraire et que les niveaux d'imbrication peuvent être aussi profonds que possible.

Supposons que nous voulions afficher dans la console tous les éléments primitifs (c'est-à-dire non des tableaux) de notre tableau. Dans ce cas, pour parcourir un tel tableau, nous ne pourrons simplement pas utiliser de boucles, car le tableau a une structure irrégulière et un niveau d'imbrication inconnu.

En revanche, pour parcourir un tel tableau, il sera très pratique d'utiliser la récursion.

Pour commencer, créons une fonction, à laquelle nous passerons notre tableau en paramètre, et dans la fonction nous créerons une boucle pour parcourir notre tableau :

function func(arr) { for (let elem of arr) { console.log(elem); } } func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]);

La boucle que nous avons créée ne parcourra que les éléments du tableau principal. C'est-à-dire qu'au début elle affichera 1, puis [2, 7, 8], et ensuite [3, 4, [5, [6, 7]].

Séparons maintenant dans la boucle les éléments primitifs et les éléments tableaux :

function func(arr) { for (let elem of arr) { if (typeof elem == 'object') { // élément - tableau } else { // élément - primitif console.log(elem); } } } func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]);

Et maintenant, faisons en sorte que si notre élément est un tableau, la fonction s'appelle elle-même, en passant ce tableau en paramètre :

function func(arr) { for (let elem of arr) { if (typeof elem == 'object') { func(elem); } else { console.log(elem); } } } func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]);

Soit un objet multidimensionnel de niveau d'imbrication arbitraire, par exemple, comme celui-ci :

{a: 1, b: {c: 2, d: 3, e: 4}, f: {g: 5, j: 6, k: {l: 7, m: {n: 8, o: 9}}}}

À l'aide de la récursion, affichez tous les éléments primitifs de cet objet dans la console.

Soit un tableau multidimensionnel de niveau d'imbrication arbitraire, par exemple, comme celui-ci :

[1, [2, 7, 8], [3, 4, [5, [6, 7]]]]

Écrivez un code qui transformera notre tableau multidimensionnel en un tableau unidimensionnel. Pour le tableau ci-dessus, cela ressemblera à ceci :

[1, 2, 7, 8, 3, 4, 5, 6, 7]
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser