Latihan 1 dari materi Navigasi File System di Terminal — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Tulis dua function yang menerjemahkan tugas navigasi jadi perintah terminal. Kode awal sudah berisi kerangka kedua function dan tujuh console.log di bawahnya: biarkan semuanya, cukup isi badan function-nya.
getCommand(task) mengembalikan perintah untuk tiap tugas:
"lihat isi" mengembalikan "ls -la"
"posisi sekarang" mengembalikan "pwd"
"kembali atas" mengembalikan "cd .."
"ke home" mengembalikan "cd ~"
"masuk folder <nama>" mengembalikan "cd <nama>", dengan nama folder diambil dari teks tugasnya. Jadi "masuk folder src" mengembalikan "cd src", dan "masuk folder tests" mengembalikan "cd tests".
isAbsolutePath(path) mengembalikan true kalau path diawali /, selain itu false. "./src" dan "src/index.js" sama-sama relatif.
Console harus mencetak tujuh baris ini, berurutan:
ls -la
pwd
cd src
cd ..
true
false
true
Yang juga dicek, tanpa dicetak: getCommand("ke home") mengembalikan "cd ~", getCommand("masuk folder tests") mengembalikan "cd tests", dan isAbsolutePath("src/index.js") mengembalikan false.
Hint
Tiap tugas punya satu perintah baku, jadi pasangan tugas dan perintah bisa disimpan di sebuah object. Path absolut dikenali dari karakter pertamanya saja.
Tugas yang diawali "masuk folder " gak bisa ditulis satu per satu: cek dengan task.startsWith("masuk folder "), lalu sambung "cd " dengan sisa teksnya. Selain itu, ambil perintahnya dari object dengan task sebagai key. Untuk path, return path.startsWith("/").