JavaScript 字符串反转
在 JavaScript 中,字符串是一种不可变的数据类型,即一旦创建就无法更改。但是我们可以通过不同的方法来反转字符串,本文将介绍几种常用的方法来实现字符串反转。
方法一:使用数组的 reverse() 方法
我们可以将字符串转换为数组,然后使用数组的 reverse() 方法来实现字符串反转。
const str = "geek-docs.com";
const reversedStr = str.split("").reverse().join("");
console.log(reversedStr); // 输出:moc.scod-keeg
Output:

方法二:使用递归
我们可以使用递归的方式来实现字符串反转。
function reverseString(str) {
if (str === "") {
return "";
} else {
return reverseString(str.substr(1)) + str.charAt(0);
}
}
const str = "geek-docs.com";
const reversedStr = reverseString(str);
console.log(reversedStr); // 输出:moc.scod-keeg
Output:

方法三:使用循环
我们也可以使用循环来实现字符串反转。
function reverseString(str) {
let reversedStr = "";
for (let i = str.length - 1; i >= 0; i--) {
reversedStr += str[i];
}
return reversedStr;
}
const str = "geek-docs.com";
const reversedStr = reverseString(str);
console.log(reversedStr); // 输出:moc.scod-keeg
Output:

方法四:使用 reduce() 方法
我们可以使用数组的 reduce() 方法来实现字符串反转。
const str = "geek-docs.com";
const reversedStr = str.split("").reduce((acc, char) => char + acc, "");
console.log(reversedStr); // 输出:moc.scod-keeg
Output:

方法五:使用 split() 和 join() 方法
我们可以使用 split() 方法将字符串转换为数组,然后使用 join() 方法将数组转换为字符串。
const str = "geek-docs.com";
const reversedStr = str.split("").reverse().join("");
console.log(reversedStr); // 输出:moc.scod-keeg
Output:

方法六:使用 ES6 的扩展运算符
我们可以使用 ES6 的扩展运算符来实现字符串反转。
const str = "geek-docs.com";
const reversedStr = [...str].reverse().join("");
console.log(reversedStr); // 输出:moc.scod-keeg
Output:

方法七:使用递归和 ES6 解构赋值
我们可以结合递归和 ES6 的解构赋值来实现字符串反转。
function reverseString([first, ...rest]) {
return rest.length > 0 ? reverseString(rest) + first : first;
}
const str = "geek-docs.com";
const reversedStr = reverseString([...str]);
console.log(reversedStr); // 输出:moc.scod-keeg
Output:

方法八:使用 split() 和 reduceRight() 方法
我们可以使用 split() 方法将字符串转换为数组,然后使用 reduceRight() 方法来实现字符串反转。
const str = "geek-docs.com";
const reversedStr = str.split("").reduceRight((acc, char) => acc + char, "");
console.log(reversedStr); // 输出:moc.scod-keeg
Output:

方法九:使用递归和 substring() 方法
我们可以结合递归和 substring() 方法来实现字符串反转。
function reverseString(str) {
if (str === "") {
return "";
} else {
return reverseString(str.substring(1)) + str.charAt(0);
}
}
const str = "geek-docs.com";
const reversedStr = reverseString(str);
console.log(reversedStr); // 输出:moc.scod-keeg
Output:

方法十:使用 split() 和 map() 方法
我们可以使用 split() 方法将字符串转换为数组,然后使用 map() 方法来实现字符串反转。
const str = "geek-docs.com";
const reversedStr = str.split("").map((char, index, arr) => arr[arr.length - index - 1]).join("");
console.log(reversedStr); // 输出:moc.scod-keeg
Output:

极客教程