Latihan buat 03 Fungsi. Konsep yang dilatih: mendefinisikan fungsi, return, rekursi, dan menumbuhkan fungsi umum dari fungsi khusus. Jawaban di 03 Kunci Jawaban Fungsi.

3.1 Minimum

Buku menyediakan Math.min. Sekarang tulis sendiri fungsi min yang menerima dua argumen dan mengembalikan yang terkecil.

Kode awal:

// tulis kodemu di sini
 
console.log(min(0, 10));
// → 0
console.log(min(0, -10));
// → -10

Petunjuk: cukup satu if/else yang membandingkan kedua argumen dan return yang lebih kecil. Ingat fungsi boleh punya beberapa return (03 Fungsi > Mendefinisikan Fungsi).

→ Jawaban: 03 Kunci Jawaban Fungsi > 3.1 Minimum

3.2 Rekursi (isEven)

Definisikan genap/ganjil untuk bilangan bulat tak-negatif begini: 0 itu genap, 1 itu ganjil, dan untuk angka lain N, kegenapannya sama dengan N - 2. Tulis fungsi rekursif isEven sesuai deskripsi ini (satu parameter, mengembalikan Boolean). Tes di 50 dan 75. Coba juga di -1 — apa yang terjadi, dan bagaimana memperbaikinya?

Kode awal:

// tulis kodemu di sini
 
console.log(isEven(50));
// → true
console.log(isEven(75));
// → false
console.log(isEven(-1));
// → ??

Petunjuk: pakai rantai if/else if/else, dua kasus dasar (0 dan 1) dan satu kasus rekursif yang memanggil isEven(n - 2). Untuk angka negatif, n - 2 makin menjauh dari 0 sampai stack habis — atasi dengan membalik tanda angka negatif dulu. Konsep di 03 Fungsi > Rekursi.

→ Jawaban: 03 Kunci Jawaban Fungsi > 3.2 Rekursi (isEven)

3.3 Menghitung Karakter

Karakter ke-N dari string diambil dengan string[N] (mulai dari 0). Tulis countBs(string) yang mengembalikan jumlah huruf B besar di dalamnya. Lalu tulis countChar(string, ch) yang seperti countBs tapi menghitung karakter apa pun, dan tulis ulang countBs supaya memakai countChar.

Kode awal:

// tulis kodemu di sini
 
console.log(countBs("BOB"));
// → 2
console.log(countChar("kakkerlak", "k"));
// → 4

Petunjuk: countChar butuh loop dari 0 sampai string.length - 1, tambah penghitung tiap string[i] == ch. countBs cukup satu baris: return countChar(string, "B"). Ini contoh “menumbuhkan fungsi” dari 03 Fungsi > Menumbuhkan Fungsi.

→ Jawaban: 03 Kunci Jawaban Fungsi > 3.3 Menghitung Karakter