Latihan 1 dari materi GitHub Actions Advanced di DevOps — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Buat fungsi generateMatrix(config) yang menerima object matrix (setiap kunci adalah nama dimensi, nilainya array) dan mengembalikan array berisi semua kombinasi, seperti yang dilakukan strategy.matrix.
Kunci pertama di config ada di loop paling luar, kunci berikutnya di dalamnya, dan seterusnya.
Setiap kombinasi adalah object dengan kunci yang urutannya sama seperti di config, misalnya { node: 18, os: "ubuntu" }.
Kalau cuma ada satu kunci, hasilnya satu object per nilai.
ditambah satu config rahasia dengan tiga kunci, dengan aturan yang sama.
console.log di kode awal biarkan saja, gunanya untuk melihat hasilnya.
Hint
Mulai dari satu kombinasi kosong, [{}]. Untuk setiap kunci, setiap kombinasi yang sudah ada dipecah jadi satu per nilai kunci itu.
let result = [{}]; lalu for (const key of Object.keys(config)) { const next = []; for (const combo of result) for (const value of config[key]) next.push(...); result = next; } return result;
Di dalam loop paling dalam: next.push({ ...combo, [key]: value }); Karena combo yang lama di luar dan nilai baru di dalam, kunci pertama berganti paling jarang, persis seperti contoh.
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...