kembali ke pelajaran

Ulangi sampai masukan adalah sebuah angka

Buatlah sebuah fungsi readNumber yang meminta (prompts) nomor hingga pengunjung memasukkan nilai numerik yang valid.

Nilai yang dihasilkan harus dikembalikan sebagai angka.

Pengunjung juga dapat menghentikan proses dengan memasukkan baris kosong atau menekan “BATAL”. Dalam hal ini, fungsi tersebut harus mengembalikan null.

jalankan demonya

Buka sandbox dengan tes.

function readNumber() {
  let num;

  do {
    num = prompt("Enter a number please?", 0);
  } while ( !isFinite(num) );

  if (num === null || num === '') return null;

  return +num;
}

alert(`Read: ${readNumber()}`);

Solusinya sedikit lebih rumit dari itu karena kita perlu menangani null/baris kosong.

Jadi, kita benar-benar menerima input hingga ini merupakan “angka reguler”. Baik null (cancel) maupun baris kosong juga cocok dengan kondisi itu, karena dalam bentuk numerik mereka adalah0.

Setelah kita berhenti, kita perlu memperlakukan null dan khususnya baris kosong (mengembalikan null), karena mengonversinya menjadi angka akan mengembalikan 0.

Buka solusi dengan tes di sandbox.