⊗jsPmRcMS 278 of 505 menu

Rekursie en multidimensionele strukture in JavaScript

Gegee 'n multidimensionele skikking van arbitrêre vlak van inneembaarheid, byvoorbeeld so een:

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

Soos jy kan sien, het hierdie skikking 'n komplekse struktuur, en dit word veronderstel dat hierdie struktuur arbitrêr kan wees en die vlakke van inneembaarheid kan willekeurig diep wees.

Kom ons sê ons wil alle primitiewe (d.w.s. nie-skikkings) elemente van ons skikking in die konsole uitvoer. In hierdie geval sal ons nie eenvoudig lusse kan gebruik om so 'n skikking deur te loop nie, aangesien die skikking 'n onreëlmatige struktuur het en 'n onbekende vlak van inneembaarheid.

Maar om so 'n skikking deur te loop, sal rekursie baie gerieflik wees.

Laat ons eers 'n funksie maak wat ons skikking as 'n parameter neem, en binne die funksie maak ons 'n lus om ons skikking deur te loop:

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

Die lus wat ons gemaak het, sal slegs die elemente van die hoofskikking deurloop. Dit wil sê, eers sal dit 1 uitvoer, dan [2, 7, 8], en dan [3, 4, [5, [6, 7]].

Laat ons nou in die lus primitiewe elemente en skikking-elemente onderskei:

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

En laat ons dit nou so maak dat as ons element 'n skikking is, die funksie haarself aanroep, deur hierdie skikking as parameter deur te gee:

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]]]]);

Gegee 'n multidimensionele objek van arbitrêre vlak van inneembaarheid, byvoorbeeld so een:

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

Gebruik rekursie om alle primitiewe elemente van hierdie objek in die konsole uit te voer.

Gegee 'n multidimensionele skikking van arbitrêre vlak van inneembaarheid, byvoorbeeld so een:

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

Skryf kode wat ons multidimensionele skikking na 'n eendimensionele skikking sal afplat. Vir die bostaande skikking sal dit so lyk:

[1, 2, 7, 8, 3, 4, 5, 6, 7]
Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp