Apabila berurusan dengan JavaScript, keperluan sering timbul untuk mengalas nombor dengan sifar pendahuluan. Sebagai contoh, nombor 9 menjadi "0009," dan 10 menjadi "0010," sentiasa mematuhi format empat digit.
Pendekatan mudah melibatkan penolakan nombor daripada 4 untuk menentukan bilangan sifar yang diperlukan. Walaupun berfungsi, ia tidak mempunyai bakat.
Dalam ES2017, kaedah String.prototype.padStart() menawarkan penyelesaian yang lebih elegan. Ia menambahkan aksara yang ditentukan (secara lalai, ruang) di sebelah kiri rentetan sehingga ia mencapai panjang yang diingini.
n = 9; String(n).padStart(4, '0'); // '0009' n = 10; String(n).padStart(4, '0'); // '0010'
Dalam senario di mana padStart() mungkin bukan pilihan, fungsi padding generik boleh digunakan:
function pad(n, width, z) { z = z || '0'; n = n + ''; return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n; }
Fungsi ini menggunakan keupayaan tatasusunan untuk menerima nombor sebagai hujah dan mencipta tatasusunan dengan panjang itu, diisi dengan elemen yang tidak ditentukan. Apabila menggabungkan elemen ini dengan sifar (atau aksara lain yang ditentukan), rentetan dijana dengan bilangan sifar pendahuluan yang sesuai.
pad(10, 4); // 0010 pad(9, 4); // 0009 pad(123, 4); // 0123 pad(10, 4, '-'); // --10
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mepad Nombor dengan Sifar Utama dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!