Latihan 1 dari materi Formatting Standards di Clean Code — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi formatCode(src), formatter mini yang merapikan string kode. Dua input di starter (src1 dengan tab dan spasi di ujung baris, src2 dengan tiga baris kosong di antara dua fungsi) dan dua console.log di bawahnya tetap.
Pecah src per baris dengan split('\n').
Per baris, buang spasi di ujung baris dengan .replace(/\s+$/, ''). .trimEnd() juga boleh: pemeriksa mencari .replace(, .trim(, .trimEnd( atau .trimStart( di kodemu.
Seragamkan indentasi di awal baris: hitung lebarnya (tab = 4 kolom, spasi = 1 kolom), lalu tulis ulang sebagai ' '.repeat(Math.round(kolom / 4)). Jadi satu tab atau 4 spasi jadi 2 spasi. Baris yang isinya kosong jadi ''.
Rapatkan dua atau lebih baris kosong beruntun jadi satu baris kosong.
Buang baris kosong di awal dan di akhir, lalu kembalikan lines.join('\n').
Output-nya dua console.log: yang pertama tiga baris
function a() {
return 1;
}
dan yang kedua tiga baris dengan satu baris kosong di tengah:
function a() {}
function b() {}
Hint
Formatter mengubah tata letak saja, bukan isi. Kerjakan per baris: rapikan ujungnya, ganti indentasi di depannya, lalu urus baris kosong di antara baris-baris itu.
Ambil indentasi dengan line.match(/^[\t ]*/)[0], isinya dengan line.slice(indentasi.length).replace(/\s+$/, ''). Hitung kolomnya (tab 4, spasi 1), lalu ' '.repeat(Math.round(kolom / 4)) + isi. Setelah itu filter baris kosong yang sebelumnya juga kosong, dan shift/pop baris kosong di ujung.