Latihan 1 dari materi Strategy Pattern di Design Patterns — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Isi tiga strategi di object formatters, lalu lengkapi formatPrice(amount, locale) supaya memanggil strategi yang sesuai.
id: kembalikan "Rp " + amount.toLocaleString("id-ID"), misalnya Rp 1.500.000.
us: kembalikan "quot; + amount.toLocaleString("en-US"), misalnya $1,500,000.
compact: kalau amount >= 1000000, kembalikan amount / 1000000 + "jt". Kalau amount >= 1000, kembalikan amount / 1000 + "rb". Selain itu kembalikan String(amount). Cek yang jutaan dulu.
formatPrice(amount, locale) mengambil formatters[locale] dan memanggilnya dengan amount. Kalau locale gak ada di formatters, lempar new Error("Unknown locale").
Kode console.log di bawahnya sudah ada di starter dan tetap. Console harus mencetak lima baris ini, berurutan:
Rp 1.500.000
$1,500,000
1.5jt
2.5rb
500
Yang juga dinilai: formatPrice(100, "jp") harus melempar error dengan pesan Unknown locale, formatPrice(7500, "compact") harus 7.5rb, formatPrice(999, "compact") harus 999, dan formatPrice(2000000, "id") harus Rp 2.000.000.