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: