⊗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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць