JavaScript String repeat()

repeat() 方法用來將字串重複指定的次數,回傳一個新字串。

語法:

str.repeat(count)
  • count 是重複的次數,必須是 0 或正整數
  • 回傳重複後的新字串

用法:

'abc'.repeat(3);   // 'abcabcabc'
'abc'.repeat(2);   // 'abcabc'
'abc'.repeat(1);   // 'abc'
'abc'.repeat(0);   // ''(空字串)

錯誤情況:

'abc'.repeat(-1);    // RangeError
'abc'.repeat(Infinity); // RangeError

小數會被自動取整數:

'abc'.repeat(2.5);  // 'abcabc'(等同於 repeat(2))

實際應用:

// 產生分隔線
'-'.repeat(50);
// '--------------------------------------------------'

// 縮排
function indent(level) {
    return '  '.repeat(level);
}

indent(0) + 'root';        // 'root'
indent(1) + 'child';       // '  child'
indent(2) + 'grandchild';  // '    grandchild'

// 建立重複的字元填充
function pad(str, length, char) {
    if (str.length >= length) return str;
    return char.repeat(length - str.length) + str;
}

pad('5', 3, '0');    // '005'
pad('42', 5, '0');   // '00042'
repeat() 是 ES6 新增的方法。count 必須是非負整數,否則會拋出 RangeError。