⊗jsPmRcMS 278 of 505 menu

Rekursi dan Struktur Multidimensi dalam JavaScript

Diberikan tatasusunan multidimensi aras sewenang-wenangnya bersarang, contohnya seperti ini:

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

Seperti yang anda lihat, tatasusunan ini mempunyai struktur yang kompleks, dan diandaikan bahawa struktur ini boleh menjadi sewenang-wenangnya dan aras bersarang boleh menjadi sangat dalam.

Katakan kita ingin mencetak semua elemen primitif (iaitu bukan tatasusunan) tatasusunan kita ke konsol. Dalam kes ini, untuk melelarkan tatasusunan sedemikian, kita tidak akan dapat menggunakan gelung sahaja, kerana tatasusunan mempunyai struktur yang tidak sekata dan aras bersarang yang tidak diketahui.

Namun, untuk melelarkan tatasusunan sedemikian, adalah sangat sesuai untuk menggunakan rekursi.

Sebagai permulaan, mari kita buat fungsi, di mana parameter kita akan menghantar tatasusunan kita, dan dalam fungsi itu kita akan buat gelung untuk melelarkan tatasusunan kita:

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

Gelung yang kita buat hanya akan melelarkan elemen-elemen tatasusunan utama. Iaitu, pada mulanya ia akan mencetak 1, kemudian [2, 7, 8], dan kemudian [3, 4, [5, [6, 7]].

Sekarang mari kita bezakan dalam gelung antara elemen-elemen primitif dan elemen-elemen tatasusunan:

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

Dan sekarang mari kita buat supaya jika elemen kita adalah tatasusunan, fungsi itu memanggil dirinya sendiri, dengan menghantar tatasusunan itu sebagai parameter:

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

Diberikan objek multidimensi aras sewenang-wenangnya bersarang, contohnya seperti ini:

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

Dengan menggunakan rekursi, cetak semua elemen primitif objek ini ke konsol.

Diberikan tatasusunan multidimensi aras sewenang-wenangnya bersarang, contohnya seperti ini:

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

Tulis kod yang akan mengembangkan tatasusunan multidimensi kita kepada satu dimensi. Untuk tatasusunan di atas, ia akan kelihatan seperti ini:

[1, 2, 7, 8, 3, 4, 5, 6, 7]
Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak