⊗jsPmRcMS 278 of 505 menu

Рекурзија и мултидимензионални структури во JavaScript

Дадена е мултидимензионална низа со произволно ниво на вгнезденост, на пример, како оваа:

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

Како што можете да видите, оваа низа има сложена структура, при што се претпоставува дека оваа структура може да биде произволна и нивоата на вгнезденост можат да бидат произволно длабоки.

Да речеме дека сакаме да ги испечатиме во конзола сите примитивни (односно не-низи) елементи на нашата низа. Во овој случај, за пребарување на таква низа едноставно нема да можеме да користиме јамки, бидејќи низата има неправилна структура и непознато ниво на вгнезденост.

Но, за пребарување на таква низа многу погодно ќе биде да се користи рекурзија.

За почеток, да направиме функција во која како параметар ќе ја пренесеме нашата низа, а во функцијата ќе направиме јамка за пребарување на нашата низа:

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

Јамката што ја направивме ќе ги пребарува само елементите на главната низа. Односно, прво ќе го испечати 1, потоа [2, 7, 8], a потоа [3, 4, [5, [6, 7]].

Сега, да ги разделуваме во јамката примитивните елементи и елементите-низи:

function func(arr) { for (let elem of arr) { if (typeof elem == 'object') { // елементот е низа } else { // елементот е примитив console.log(elem); } } } func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]);

A сега, да направиме така што ако нашиот елемент е низа, функцијата да се повика сама себе, пренесувајќи како параметар таа низа:

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

Даден е мултидимензионален објект со произволно ниво на вгнезденост, на пример, како овој:

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

Со помош на рекурзија испечатете ги сите примитивни елементи на овој објект во конзола.

Дадена е мултидимензионална низа со произволно ниво на вгнезденост, на пример, како оваа:

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

Напишете код кој ќе ја расклопи нашата мултидимензионална низа во еднодимензионална. За дадената погоре низа ова ќе изгледа вака:

[1, 2, 7, 8, 3, 4, 5, 6, 7]
Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј