Latihan 1 dari materi Piping & Redirection di Terminal — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Simulasikan pipe terminal di JavaScript. Di terminal, cat app.log | grep ERROR | wc -l mengalirkan hasil tiap perintah ke perintah berikutnya. Fungsi pipe melakukan hal yang sama untuk function.
- Lengkapi
function pipe(...fns). Dia harus mengembalikan function baru yang menerima satu input, lalu menjalankan semua function di fns berurutan dari kiri ke kanan: hasil function pertama jadi input function kedua, dan seterusnya.
- Pakai
reduce untuk membawa nilainya dari satu function ke function berikutnya, dengan input sebagai nilai awal.
- Tanpa function sama sekali,
pipe() mengembalikan input-nya apa adanya: pipe()(5) hasilnya 5.
Sisanya di kode awal sudah ada, biarkan begitu: logLines, filterErrors, countLines, toUpper, countErrors, getUpperErrors, dan dua console.log. Output-nya harus persis dua baris ini:
3
ERROR: DATABASE TIMEOUT|ERROR: FILE NOT FOUND|ERROR: PERMISSION DENIED
Yang juga dicek: pipe(function (n) { return n + 1; }, function (n) { return n * 2; })(3) mengembalikan 8, pipe(function (s) { return s.trim(); })(" hi ") mengembalikan "hi", dan pipe()(5) mengembalikan 5.