原文:Reversing a String in JavaScript – Invert a string with the JS .reverse() Method,作者:Joel Olawanle

在 JavaScript 中反转字符串是你在 Web 开发过程中经常需要做的事情。在面试、解决算法问题或进行数据操作时,你可能需要反转字符串。

在本文中,我们将学习如何在 JavaScript 中使用内置的 JavaScript 方法以及 JavaScript reverse() 方法来反转字符串。

对于那些匆忙的人,这里有一行代码可以帮助你在 JavaScript 中反转字符串:

let myReversedString = myString.split("").reverse().join("");

或者你可以使用这个:

let myReversedString = [...myString].reverse().join("");

现在让我们讨论这些方法以及它们在帮助我们在 JavaScript 中反转字符串方面所起的作用。

如何使用 JavaScript 方法反转字符串

使用 JavaScript 方法来反转字符串很简单。这是因为我们将只使用三种执行不同功能的方法,它们被一起使用来实现这一共同目标。

通常,我们使用扩展运算符或 split() 方法将特定字符串拆分为一个数组。然后我们使用 reverse() 方法,该方法只能用于反转数组中的元素。最后,我们使用 join() 方法将这个数组作为字符串连接在一起。

让我们分别尝试这些方法。

如何在 JavaScript 中拆分字符串

在 JavaScript 中拆分字符串有两种主要方法:使用扩展运算符或 split() 方法。

如何使用 split() 方法拆分字符串

split() 方法是一种非常强大的方法,可用于根据给定模式将字符串分解为子字符串的有序列表。

例如,如果我们有一个用逗号分隔的月份,我们想将其拆分成一个月份数组,可以这样做:

const months_string = 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec';

console.log(months_string.split(','))

这将输出以下数组:

["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]

在我们的例子中,字符串可能是一个没有分隔每个字符的常规字符串。然后我们所要做的就是传递一个没有空格的空字符串,如下所示:

let myString = "Hello World";

console.log(myString.split("")); // ["H","e","l","l","o"," ","W","o","r","l","d"]
console.log(myString.split(" ")); // ["Hello","World"]

如何使用扩展运算符拆分字符串

扩展运算符是 ES6 的新增功能,可以轻松地将字符串拆分为数组。它不仅仅是拆分字符串:

let myString = "Hello World";

console.log([...myString]); // ["H","e","l","l","o"," ","W","o","r","l","d"]

如何使用 reverse() 方法反转字符串数组

到目前为止,我们已经学习了如何拆分字符串。而 split() 方法当然是将字符串分割成一个数组。现在你可以对其应用反转数组方法,如下所示:

let myString = "Hello World";

let splitString1 = myString.split("");
let splitString2 = myString.split(" ");

console.log(splitString1.reverse()); // ["d","l","r","o","W"," ","o","l","l","e","H"]
console.log(splitString2.reverse()); // ["World","Hello"]

我们也可以通过这种方式将其应用于扩展运算符,但我们将无法定义如何拆分字符串:

let myString = "Hello World";

console.log([...myString].reverse()); // ["d","l","r","o","W"," ","o","l","l","e","H"]

如何使用 join() 方法连接字符串数组

这是另一种强大的方法,与 split() 方法的工作方向相反,它通过连接数组中由逗号或任何其他被指定为分隔符的字符串分隔的所有元素来创建一个新字符串。

例如,如果我们想要将一个字符串数组连接成一个用破折号(-)分隔的单个字符串,可以执行以下操作:

let monthArray = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
console.log(monthArray.join("-"));

这将返回以下内容:

"Jan-Feb-Mar-Apr-May-Jun-Jul-Aug-Sep-Oct-Nov-Dec"

在我们的例子中,我们已经反转了字符串,不想要任何中间的东西。这意味着我们将通过这种方式传递一个空字符串:

let myString = "Hello World";

let splitString1 = myString.split("");
let splitString2 = myString.split(" ");

let reversedStringArray1 = splitString1.reverse();
let reversedStringArray2 = splitString2.reverse();

console.log(reversedStringArray1.join("")); // "dlroW olleH"
console.log(reversedStringArray2.join("")); // "WorldHello"

最后,通过将所有方法按正确顺序组合在一起,我们只需一行代码即可执行所有这些操作:

let myString = "Hello World";

let myReversedString = myString.split("").reverse().join("");

console.log(myReversedString); // "dlroW olleH"

这同样适用于扩展运算符:

let myString = "Hello World";

let myReversedString = [...myString].reverse().join("");

console.log(myReversedString); // "dlroW olleH"

小结

在本教程中,我们学习了如何使用 reverse() 方法以及其他 JavaScript 方法来反转字符串。我们还通过示例看到了这些方法如何使用。

祝你编程愉快!