⊗jsPmRcMS 278 of 505 menu

Rekursi dan Struktur Multidimensi dalam JavaScript

Diberikan array multidimensi dengan tingkat kedalaman sebarang, contohnya seperti ini:

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

Seperti yang Anda lihat, array ini memiliki struktur yang kompleks, dan diasumsikan bahwa struktur ini bisa sebarang dan tingkat kedalamannya bisa sangat dalam.

Misalkan kita ingin mencetak semua elemen primitif (yaitu bukan array) dari array kita ke konsol. Dalam kasus ini, untuk melakukan iterasi pada array seperti itu kita tidak bisa menggunakan perulangan biasa, karena array memiliki struktur yang tidak beraturan dan tingkat kedalaman yang tidak diketahui.

Namun, untuk iterasi array seperti ini akan sangat mudah jika menggunakan rekursi.

Pertama, kita buat sebuah fungsi, yang parameternya adalah array kita, dan di dalam fungsi kita buat perulangan untuk iterasi array kita:

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

Perulangan yang kita buat hanya akan melakukan iterasi pada elemen-elemen array utama. Artinya, awalnya ia akan mencetak 1, lalu [2, 7, 8], dan kemudian [3, 4, [5, [6, 7]].

Sekarang mari kita pisahkan dalam perulangan antara elemen-elemen primitif dan elemen-elemen yang berupa array:

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

Dan sekarang kita atur agar jika elemen kita adalah array, fungsi akan memanggil dirinya sendiri, dengan meneruskan array tersebut 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 dengan tingkat kedalaman sebarang, 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 dari objek ini ke konsol.

Diberikan array multidimensi dengan tingkat kedalaman sebarang, contohnya seperti ini:

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

Tuliskan kode yang akan mengubah array multidimensi kita menjadi array satu dimensi. Untuk array di atas hasilnya akan terlihat seperti ini:

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