使用 JavaScript 重複字串

Mehvish Ashiq 2023年1月30日 2022年5月10日
  1. 使用 JavaScript 重複字串的不同方法
  2. 使用 while 迴圈使用 JavaScript 重複字串
  3. 在 JavaScript 中使遞迴重複字串
  4. 使用 ES6 repeat() 函式使用 JavaScript 重複字串
  5. 使用 join() 方法使用 JavaScript 重複字串
  6. 使用 Lodash 的 repeat() 方法使用 JavaScript 重複字串
使用 JavaScript 重複字串

本教程展示瞭如何使用 JavaScript 重複字串。在這裡,重複一個字串意味著將確切的字串複製特定次數。

使用 JavaScript 重複字串的不同方法

我們可以使用不同的方法將字串重複指定次數。我們可以根據專案需要使用以下任意一種。

  • while 迴圈
  • 遞迴
  • ES6 原生 repeat() 函式
  • 陣列的 join() 方法
  • Lodashrepeat() 函式

使用 while 迴圈使用 JavaScript 重複字串

function repeatStr(str, numOfTimes) {
  var repeatedStr = "";
 
  while (numOfTimes > 0) {
    repeatedStr += str;
    numOfTimes--; 
  }
 
  return repeatedStr; 
}

console.log(repeatStr("Hi", 6));

輸出:

"HiHiHiHiHiHi"

我們將字串 Hi 和數字 6 傳遞給 repeatStr() 方法,該方法使用 while 迴圈對提供的字串進行指定次數的迭代。在這裡,它列印了六次 Hi

我們也可以通過提供一個字元作為第一個引數並提供一個數字作為第二個引數來對一個字元執行相同的操作。例如,repeatStr('M', 5)

在 JavaScript 中使遞迴重複字串

遞迴是函式呼叫自身以重複操作直到獲得所需結果的地方。

在遞迴中,編寫程式碼的順序對於實現目標很重要。否則,該函式將繼續呼叫自身,因為它找不到端點(停止條件)。

為了讓函式起作用,我們定義了告訴停止條件的基本情況。此外,我們編寫了 recursive case 來呼叫函式本身。

檢查以下示例。

function repeatStr(str, numOfTimes) {
  if(numOfTimes < 0) 
    return "";
  if(numOfTimes === 1) 
    return str;
  else 
    return str + repeatStr(str, numOfTimes - 1); 
}

console.log(repeatStr("Hi", 6));

輸出:

"HiHiHiHiHiHi"

在這裡,函式 repeatStr() 檢查 numOfTimes,如果它小於零,則返回空字串。

如果 numOfTimes 為 1,則返回傳遞的字串。否則,執行遞迴呼叫以迭代操作以獲得預期的輸出。

使用 ES6 repeat() 函式使用 JavaScript 重複字串

function repeatStr(str, numOfTimes) {
  if (numOfTimes > 0)
    return str.repeat(numOfTimes);
  else
    return "";
}

console.log(repeatStr("xyz", 2));

輸出:

"xyzxyz"

在這裡,我們使用 ES6 原生的 repeat() 方法,該方法接受一個數字作為引數,並將字串重複該次數。

例如,repeat() 方法在上面的程式碼片段中迭代了兩次。repeat() 方法不會修改原始字串,而是構造並返回重複的字串。

如果我們傳遞一個浮點數,它將被轉換為一個整數(參見下面的程式碼)。如果我們不提供數字或傳遞零 (0),它會返回一個空字串。

如果指定的數字是負數或不小於無窮大,它會丟擲 RangeError。讓我們通過編寫一小段程式碼來理解它。

var str = "xyz";

console.log(str.repeat(2));  // xyzxyz
console.log(str.repeat(0)); // ""
console.log(str.repeat()); // ""
console.log(str.repeat(3.4));// xyzxyzxyz
console.log(str.repeat(-1)); // RangeError
console.log(str.repeat(1/0));// RangeError

使用 join() 方法使用 JavaScript 重複字串

function repeatStr() {
  var str = "Hello";
  var repeatedStr = "";
  repeatedStr = Array(3).join(str);  
  return repeatedStr; 
}

console.log(repeatStr());

輸出:

"HelloHello"

我們使用 Array 的 join() 函式將字串連線特定次數。

如果我們寫了 3,你可能想知道為什麼我們會收到兩次 Hello。這是因為陣列從 0 開始,到 n-1 結束。

這就是 join() 方法將提供的字串連線 n-1 次的原因。

使用 Lodash 的 repeat() 方法使用 JavaScript 重複字串

const _ = require("lodash");

function repeatStr(str, numOfTimes) {
  if (numOfTimes > 0)
    return _.repeat(str,numOfTimes);
  else
    return "";
}

console.log(repeatStr("xyz", 2));

輸出:

"xyzxyz"

在這裡,Lodash 庫的 repeat() 方法也像 ES6 repeat() 方法一樣重複字串。

唯一的區別是 Lodash 的 repeat() 方法將字串和 count 作為引數,而 ES6 的 repeat() 方法只使用一個引數:count

你可以在此處找到有關 _.repeat() 的更多資訊。

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

相關文章 - JavaScript String