⊗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], а потом [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]]]]);

А сада ћемо урадити тако да, ако је наш елемент низ, функција позове саму себе, прослеђујући као параметар тај низ:

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šuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј