⊗jsPmRcMS 278 of 505 menu

Rekurzija i multidimenzionalne strukture u JavaScript-u

Dat je multidimenzionalni niz proizvoljnog nivoa ugnježdenosti, na primer, ovakav:

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

Kao što vidite, ovaj niz ima složenu strukturu, pri čemu se pretpostavlja da ta struktura može biti proizvoljna i nivoi ugnježdenosti mogu biti proizvoljno duboki.

Recimo da želimo da ispišemo u konzolu sve primitivne (to jest, one koji nisu nizovi) elemente našeg niza. U ovom slučaju, za iteraciju kroz takav niz jednostavno nećemo moći koristiti petlje, pošto niz ima nepravilnu strukturu i nepoznati nivo ugnježdenosti.

Međutim, za iteraciju kroz takav niz vrlo zgodno će biti koristiti rekurziju.

Za početak, napravićemo funkciju kojoj ćemo kao parametar proslediti naš niz, a u funkciji ćemo napraviti petlju za iteraciju kroz naš niz:

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

Petlja koju smo napravili će iterirati samo kroz elemente glavnog niza. To jest, prvo će ispisati 1, zatim [2, 7, 8], a potom [3, 4, [5, [6, 7]].

Sada ćemo u petlji razdvojiti primitivne elemente i elemente koji su nizovi:

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

A sada ćemo učiniti da, ako je naš element niz, funkcija poziva samu sebe, prosleđujući taj niz kao parametar:

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

Dat je multidimenzionalni objekat proizvoljnog nivoa ugnježdenosti, na primer, ovakav:

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

Pomoću rekurzije ispišite sve primitivne elemente ovog objekta u konzolu.

Dat je multidimenzionalni niz proizvoljnog nivoa ugnježdenosti, na primer, ovakav:

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

Napišite kod koji će razviti naš multidimenzionalni niz u jednodimenzionalni. Za gore navedeni niz to će izgledati ovako:

[1, 2, 7, 8, 3, 4, 5, 6, 7]
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij