⊗jsPmRcMS 278 of 505 menu

JavaScript-da Rekursiýa we Köpölçekli Strukturalar

Erkin derejeli iç-içe geçen köpölçekli massiw berlen, meselem, şeýle:

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

Görşüňiz ýaly, bu massiwiň çylşyrymly strukturasy bar, we bu struktura erkin bolup biler we iç-içe geçiş derejeleri näçe çuň bolsa bolýar diýen çaklama bar.

Biz massiwimiziň ähli primitiw (ýagny massiw däl) elementlerini konsolda çap etmek isleýändigimizi farz edeli. Bu ýagdaýda, beýle massiw üçin aýlawlary ulanmak mümkin bolmaz, sebäbi massiw nädogry struktura we näderejeli iç-içe geçendigi belli däl.

Emma, beýle massiw üçin aýlamak üçin rekursiýany ulanmak örän amatly bolar.

Ilki bilen, parametr hökmünde massiwimizi alýan we içinde massiwimizi aýlamak üçin aýlaw ýerine ýetirýän funksiýa ýasaýarys:

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

Biz ýasan aýlaw diňe esasy massiw elementlerini aýlar. Ýagny, ilki bilen 1-ni, soňra [2, 7, 8]-ni, we soňra [3, 4, [5, [6, 7]]-ni çap eder.

Geliň indi aýlawda primitiw elementleri we massiw elementlerini bölüp göreli:

function func(arr) { for (let elem of arr) { if (typeof elem == 'object') { // element - massiw } else { // element - primitiw console.log(elem); } } } func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]);

Indi bolsa, eger elementimiz massiw bolsa, funksiýanyň öz-özüni çaýyryp, parametr hökmünde şol massiw berilmegini üpjün edeli:

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

Erkin derejeli iç-içe geçen köpölçekli obýekt berlen, meselem, şeýle:

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

Rekursiýa kömeginde bu obýektiň ähli primitiw elementlerini konsolda çap ediň.

Erkin derejeli iç-içe geçen köpölçekli massiw berlen, meselem, şeýle:

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

Köpölçekli massiwimizi bir ölçegli massiwe öwürýän kody ýazyň. Ýokardaky massiw üçin netije şeýle görünmeli:

[1, 2, 7, 8, 3, 4, 5, 6, 7]
Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et