⊗jsPmRcMS 278 of 505 menu

JavaScript'te Özyineleme ve Çok Boyutlu Yapılar

Aşağıda, örneğin aşağıdaki gibi, keyfi seviyede iç içe geçmiş çok boyutlu bir dizi verilmiştir:

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

Gördüğünüz gibi, bu dizinin karmaşık bir yapısı var ve bu yapının keyfi olabileceği ve iç içe geçme seviyelerinin ne kadar derin olabileceği varsayılıyor.

Diyelim ki konsola dizimizin tüm ilkel (yani diziler değil) elemanlarını yazdırmak istiyoruz. Bu durumda, böyle bir diziyi gezmek için döngüleri kullanmamız mümkün olmayacaktır, çünkü dizi düzensiz bir yapıya sahiptir ve bilinmeyen bir iç içe geçme seviyesi vardır.

Ancak, böyle bir diziyi gezmek için özyineleme kullanmak çok uygun olacaktır.

Başlangıç olarak, parametre olarak dizimizi ileteceğimiz bir fonksiyon yapalım ve fonksiyonun içinde dizimizi gezmek için bir döngü kuralım:

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

Yaptığımız döngü sadece ana dizinin elemanlarını gezecektir. Yani önce 1'i, sonra [2, 7, 8]'yi, ve sonra [3, 4, [5, [6, 7]]'yi yazdıracak.

Şimdi döngüde ilkel elemanları ve dizi elemanları ayıralım:

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

Ve şimdi, eğer elemanımız bir dizi ise, fonksiyonun kendisini çağırmasını, parametre olarak bu diziyi iletmesini sağlayalım:

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şağıda, örneğin aşağıdaki gibi, keyfi seviyede iç içe geçmiş çok boyutlu bir nesne verilmiştir:

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

Özyineleme kullanarak bu nesnenin tüm ilkel elemanlarını konsola yazdırın.

Aşağıda, örneğin aşağıdaki gibi, keyfi seviyede iç içe geçmiş çok boyutlu bir dizi verilmiştir:

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

Çok boyutlu dizimizi tek boyutlu bir diziye açan kodu yazın. Yukarıdaki dizi için bu aşağıdaki gibi görünecektir:

[1, 2, 7, 8, 3, 4, 5, 6, 7]
Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet