⊗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 истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан