JavaScript 字符串反转(倒序)的几种方式,原来还有那么多方法
一、利用数组的 reverse() 和 join() 方法
把字符串 str 转数组,然后调用reverse()反转数组顺序,接着join()把反转后的数组重新拼接成字符串
把字符串转数组的方法又有好多种,例如:
- str.split('')
- Array.from(str)
- Array.prototype.slice.call(str)
代码实现
// let arr = str.split('')
// let arr = Array.from(str)
let arr = Array.prototype.slice.call(str)
let str2 = arr.reverse().join('')
二、遍历
下标从最后一个元素开始往前遍历,把遍历的字符重新拼接成一个新的字符串
let str2 = ''
for (let i = str.length - 1; i >= 0; i--) {
str2 += str[i]
}
三、递归
function reverseString(str) {
if (str === '') {
return ''
} else {
return reverseString(str.substr(1)) + str.charAt(0)
}
}
四、延伸,手写数组的 reverse 函数
思路:使用双指针(左右指针),一个从字符串前面,一个从字符串后面,两个指针同时向中间移动,并交换元素。
function reverseString(str) {
let left = 0
let right = str.length - 1
while (left < right) {
[str[left], str[right]] = [str[right], str[left]]
left++
right--
}
return str
}