JavaScript >> Javascript 文檔 >  >> Tags >> string

在 JavaScript 中反轉字符串的 4 種方法

編寫一個反轉字符串的函數是 JavaScript 面試中最常見的問題之一,特別是如果你是初級軟件工程師。面試官可能會要求你以不同的方式編寫一個反向字符串函數,例如使用 for 循環、使用遞歸或不使用內置方法等。

在本教程中,我們將討論在 JavaScript 中反轉字符串的 4 種不同方法。

1。 JavaScript 內置方法

反轉字符串的最佳方法是使用三種不同的 JavaScript 內置方法:split() , reverse()join() .

  • split() - 它使用分隔符將字符串拆分為子字符串數組,並返回新數組。
  • reverse() - 此方法反轉數組中元素的順序。第一個元素成為最後一個元素,該元素成為第一個元素。
  • join() - 它將數組的所有元素連接成一個字符串,並返回新的字符串。
const reverseString = (str) => {
    return str.split('').reverse().join('');
};

reverseString('hello world!');
// => !dlrow olleh

2。 for 循環

使用 for 循環 反轉字符串 似乎是一種幼稚的方法,但效果很好。我們可以使用遞減(甚至遞增)循環來遍歷字符串的每個字符並創建一個新的反轉字符串:

const reverseString = (str) => {
    let reversed = '';
    for (let i = str.length - 1; i >= 0; i--) {
        reversed += str[i];
    }
    return reversed;
};

reverseString('hello world!');
// => !dlrow olleh

使用 ES6 for ... of 的現代 for 循環語法 :

const reverseString = (str) => {
    let reversed = '';
    for (const c of str) {
        reversed = c + reversed;
    }
    return reversed;
};

3。遞歸

遞歸是在 JavaScript 中反轉字符串的另一種方法。這種方法涉及兩個 JavaScript 函數:substr()charAt() .第一種方法返回字符串的子串,第二種方法返回字符串的指定字符。

const reverseString = (str) => {
    return str ? reverseString(str.substr(1)) + str[0] : str;
};

reverseString('hello world!');
// => !dlrow olleh

調用遞歸函數的次數取決於字符串的長度。如果字符串很長,它會變得非常慢。所以這不是一個很好的解決方案,但仍然是解決挑戰的一種方法。

4。數組的 reduce() 方法

在 JavaScript 中另一種很少使用的反轉字符串的方法是使用 reduce() 數組的功能。此方法將數組減少為單個值。由於此函數適用於數組,我們首先需要使用 split() 將字符串拆分為數組 方法。

const reverseString = (str) => {
    return str.split('').reduce((r, c)=> c + r, '');
};

reverseString('hello world!');
// => !dlrow olleh

總結

在 JavaScript 中有很多不同的方法來反轉字符串。在本教程中,我們討論了解決反向字符串挑戰的 4 種不同方法:

  • 使用內置的 JavaScript 函數,例如 split() , reverse() , 和 slice() .這很簡單,也許是最好的方法。
  • 使用 for 循環 遍歷字符串的所有字符並創建一個新的反轉字符串。
  • 遞歸地將字符串轉換為子字符串,直到達到空字符串,然後將它們組合成一個反向字符串。如果字符串很大,它可能會變得很慢。
  • 將字符串拆分為數組,然後使用數組的reduce()將數組縮減為單個值 功能。

如果您有任何問題或想分享您的反饋,請隨時給我發推文。

快樂編碼😍


Tutorial JavaScript 教程
  1. 使用 Docker 對 ReactJS、NodeJS、NGINX 進行 Dockerizing

  2. Javascript:箭頭函數表達式

  3. 使用 jQuery 創建一個選擇加入的怪物克隆

  4. 使用帶有進度條的 Vue 路由器延遲加載路由

  5. 製作視差 SVG 風景 - 新網站第 1 部分

  6. 使用 FileReader API 在 React 中預覽圖像

  7. 您可以通過多少種方式在 JavaScript 中重定向您的網頁?

  1. 函數“concat”(在 JavaScript 中)不適用於關聯數組

  2. 最流行的 JS 框架概述

  3. 如何使用 JavaScript 在字符串中用轉義字符雙引號替換雙引號?

  4. 再見沃爾特?

  5. 在 React 中獲取後過濾數據

  6. 使用沉浸式閱讀器通過 Azure 函數和認知服務提高閱讀理解力

  7. 使用 Node.js 和 Javascript 在瀏覽器上輸出 Kinect 2

  1. 使用 NativeScript 5 創建文件存儲移動應用

  2. @react-google-maps/api onClick 不起作用

  3. 如何將 Google Analytics 和 Google AdSense 添加到您的下一個 JS 項目中!

  4. 2021 年你應該嘗試的 10 個很棒的 JavaScript 庫