⊗jsPmRcMS 278 of 505 menu

Rekurzió és többdimenziós struktúrák JavaScriptben

Adott egy tetszőleges beágyazási szintű többdimenziós tömb, például ez:

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

Amint láthatod, ennek a tömbnek összetett a szerkezete, és feltételezzük, hogy ez a szerkezet tetszőleges lehet, és a beágyazási szintek akármilyen mélyek lehetnek.

Tegyük fel, hogy az összes primitív (vagyis nem tömb) elemét ki szeretnénk írni a tömbnek a konzolra. Ebben az esetben egy ilyen tömb bejárásához egyszerűen nem használhatunk ciklusokat, mivel a tömb szabálytalan szerkezetű és ismeretlen a beágyazási szintje.

Viszont egy ilyen tömb bejárásához nagyon kényelmes a rekurzió használata.

Kezdetben készítsünk egy függvényt, amelynek paraméterként átadjuk a tömbünket, és a függvényben készítünk egy ciklust a tömb bejárásához:

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

Az általunk készített ciklus csak a fő tömb elemeit fogja bejárni. Vagyis először kiírja a 1-et, majd a [2, 7, 8]-ot, és végül a [3, 4, [5, [6, 7]]-ot.

Most válasszuk szét a ciklusban a primitív elemeket és a tömb elemeket:

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

Most pedig tegyük úgy, hogy ha az elemünk tömb, akkor a függvény magát hívja meg, átadva paraméterként ezt a tömböt:

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

Adott egy tetszőleges beágyazási szintű többdimenziós objektum, például ez:

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

Rekurzió segítségével írja ki az összes primitív elemét ennek az objektumnak a konzolra.

Adott egy tetszőleges beágyazási szintű többdimenziós tömb, például ez:

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

Írj kódot, amely a többdimenziós tömbünket egy egydimenziós tömbbé alakítja. A fenti tömbre ez így fog kinézni:

[1, 2, 7, 8, 3, 4, 5, 6, 7]
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás