⊗jsPmRcMS 278 of 505 menu

Rekursion und mehrdimensionale Strukturen in JavaScript

Gegeben ist ein mehrdimensionales Array beliebiger Verschachtelungstiefe, zum Beispiel dieses:

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

Wie Sie sehen können, hat dieses Array eine komplexe Struktur, wobei davon ausgegangen wird, dass diese Struktur beliebig sein kann und die Verschachtelungsebenen beliebig tief sein können.

Nehmen wir an, wir möchten alle primitiven (das heißt keine Arrays) Elemente unseres Arrays in der Konsole ausgeben. In diesem Fall könnten wir zum Durchlaufen eines solchen Arrays einfach keine Schleifen verwenden, da das Array eine irreguläre Struktur hat und der Verschachtelungsgrad unbekannt ist.

Allerdings eignet sich Rekursion sehr gut, um ein solches Array zu durchlaufen.

Erstellen wir zunächst eine Funktion, der wir unser Array als Parameter übergeben, und in der Funktion erstellen wir eine Schleife zum Durchlaufen unseres Arrays:

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

Die von uns erstellte Schleife wird nur die Elemente des Hauptarrays durchlaufen. Das heißt, zuerst wird sie 1 ausgeben, dann [2, 7, 8], und dann [3, 4, [5, [6, 7]].

Lassen Sie uns nun in der Schleife primitive Elemente und Array-Elemente unterscheiden:

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

Und nun sorgen wir dafür, dass die Funktion, wenn unser Element ein Array ist, sich selbst aufruft und dieses Array als Parameter übergibt:

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

Gegeben ist ein mehrdimensionales Objekt beliebiger Verschachtelungstiefe, zum Beispiel dieses:

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

Geben Sie mithilfe von Rekursion alle primitiven Elemente dieses Objekts in der Konsole aus.

Gegeben ist ein mehrdimensionales Array beliebiger Verschachtelungstiefe, zum Beispiel dieses:

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

Schreiben Sie Code, der unser mehrdimensionales Array in ein eindimensionales Array umwandelt. Für das oben angeführte Array würde das so aussehen:

[1, 2, 7, 8, 3, 4, 5, 6, 7]
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικά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
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen