⊗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çeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш