一、leftpad的概念和背景
leftpad是一個JavaScript中常用的字元串填充函數,可以在字元串前面添加指定數量的填充字元。leftpad最早是由GitHub上的一個開源Node.js模塊庫lodash的作者發起的,在其官方發布後,迅速流行起來,成為了前端開發中不可或缺的工具之一。
leftpad之所以流行,是因為它解決了一個細節問題:字元串的數字排列。當我們需要輸出一個固定位數的數字,而數量不夠時,為了使其位數相同,經常會在數字前面添加0或其他符號。leftpad的出現將這個問題解決得特別完美,成為了老少皆宜的工具。
二、leftpad的用法和實現
leftpad的語法非常簡單:
leftpad(str, length [, ch])
其中,str表示要填充字元的原始字元串,length表示所需的總長度,ch則是可選的填充字元,默認為空格。
leftpad的實現方法也比較簡單,可以使用數組的join函數,將指定長度的字元串與填充字元拼接起來,並通過字元串的slice函數截取所需長度的部分:
function leftpad(str, length, ch) { let len = length - str.length; let padStr = new Array(len + 1).join(ch); return padStr + str; }
上述代碼首先計算所需填充的字元數,然後創建一個由指定填充字元構成的字元串數組,並將其通過join函數拼接為字元串,最後將其與原字元串拼接並返回。需要注意的是,因為數組從0開始,所以長度需要加1。
三、leftpad的常見應用場景
1. 格式化數字
leftpad非常適合在數字前面添加指定數量的填充符號,橫向對齊數字。例如,當我們需要輸出一個千位分割的數字時,可以使用leftpad對其進行格式化:
let num = 1000; let formattedNum = leftpad(num.toString(), 8, '0'); console.log(formattedNum); //輸出:"00001000"
通過將數字轉換為字元串,使用leftpad填充0,可以將其格式化為8位長度的數字。
2. 對齊文本
在表格等布局中,為了使文本對齊,經常需要在文本前面添加填充符號。使用leftpad可以快速實現這一過程。例如,下面的代碼可以在字元串中添加指定數量的空格,以使其對齊:
let data = ['foo', 'bar', 'baz']; let maxLen = Math.max(...data.map(str => str.length)); data = data.map(str => leftpad(str, maxLen)); console.log(data.join('\n')); //輸出: // foo // bar // baz
通過先算出最長的字元串長度,然後將每個字元串都用leftpad進行填充,最後用「\n」拼接並輸出。
3. 前導零
leftpad不僅可以用于格式化數字,還可以用於生成前導零字元串。例如,當我們需要生成一段長度固定的隨機字元時,可以使用leftpad實現:
function randomStr(len) { const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; let str = ''; for (let i = 0; i < len; i++) { let c = chars.charAt(Math.floor(Math.random() * chars.length)); str += c; } return str; } let str = randomStr(6); let paddedStr = leftpad(str, 8, '0'); console.log(paddedStr); //輸出:"00eG06G3"
使用隨機字元生成函數生成一個長度為6的字元,再使用leftpad函數將其用「0」填充到長度為8。這種方式可以通過批量生成相同長度的帶前導零字元串,用於隨機ID或密碼生成等領域。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/154014.html