Latihan 1 dari materi tar & Archive Compression di Terminal — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Bikin dua function yang menerjemahkan perintah tar. Enam baris console.log di kode awal sudah ada, biarkan begitu.
describeTarFlags(flagString) menerima teks flag seperti "-czf" dan mengembalikan array arti tiap huruf, urut sesuai kemunculannya. Lewati tanda -. Petanya:
c jadi "create", x jadi "extract", t jadi "list"
z jadi "gzip", j (kecil) jadi "bzip2", J (besar) jadi "xz"
v jadi "verbose", f jadi "file"
extensionFor(operations) menerima array seperti hasil nomor 1 dan mengembalikan ekstensi arsipnya: ada "gzip" jadi "tar.gz", ada "bzip2" jadi "tar.bz2", ada "xz" jadi "tar.xz", gak ada kompresi jadi "tar".
Output-nya harus persis enam baris ini, berurutan:
create,gzip,file
extract,verbose,xz,file
tar.gz
tar.bz2
tar.xz
tar
Ada juga cek tambahan: extensionFor(["create", "bzip2"]) harus "tar.bz2" dan extensionFor(["list"]) harus "tar".
Hint
describeTarFlags cukup membaca satu huruf demi satu huruf. Tiap huruf punya satu arti, jadi yang kamu butuhkan adalah tabel huruf ke arti, persis tabel flag di materi.
Simpan petanya di object, misalnya const MEANINGS = { c: "create", x: "extract", t: "list", z: "gzip", j: "bzip2", J: "xz", v: "verbose", f: "file" }. Pecah teksnya jadi huruf, buang tanda minus, lalu ubah tiap huruf lewat object itu. extensionFor cukup tiga if dengan includes, dan "tar" kalau gak ada yang cocok.
return flagString.split("").filter((ch) => ch !== "-").map((ch) => MEANINGS[ch]).filter(Boolean); lalu di extensionFor: if (operations.includes("gzip")) return "tar.gz"; if (operations.includes("bzip2")) return "tar.bz2"; if (operations.includes("xz")) return "tar.xz"; return "tar";
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...