JavaScript 字符串反转的多种实现方式与算法解析

作者:木棉时间:2026-10-25 21:30:47浏览:244

本文总结了JavaScript中实现字符串反转的几种常见方式,包括利用split、reverse和join链式调用,通过循环遍历逐个拼接字符,以及使用call改变slice执行主体。此外,还深入解析了LeetCode风格的算法题解法,对比了直接调用数组reverse方法与双指针原地交换的实现逻辑及性能差异。

JavaScript 实现字符串反转(倒序)的多种方法汇总

第一种方法

let str = "i am good man";
let newStr = str.split('').reverse().join("");
console.log(newStr)

基本思路是将字符串转换为数组,对数组进行反转操作,最后再将数组重新拼接为字符串。

  • split("") ------根据字符串拆分数组
  • reverse()------数组反转元素位置
  • join("")-------数组转回字符串,不带分隔符

第二种方法

let str = "i am good man ";
let newStr = "";
for(let i = 0;i<str.length;i++){
    let s = str.charAt(str.length-i-1)
    newStr += s;
}
console.log(newStr)//nam doog ma i
//从尾部开始遍历字符串,然后逐个拼接字符,得到最终的结果。

定义一个空字符串,遍历原字符串。利用 charAt() 方法提取字符,从最后一个字符开始依次向前获取,并将提取的字符逐个拼接到新字符串的前面,从而实现倒序效果。

第三种方法

let str ="i am good man";
let newStr = Array.prototype.slice.call(str);
console.log(newStr.reverse().join(""))//nam doog ma i

利用 call 方法改变 slice 方法的执行主体。将数组的 slice 方法通过 call 绑定到字符串上,使字符串具备数组特性,进而可以直接调用 reverse 方法进行反转,最后通过 join 方法拼接得到逆序字符串。

JavaScript 算法笔记——反转字符串

反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。

示例 1:

  • 输入:[“h”,“e”,“l”,“l”,“o”]
  • 输出:[“o”,“l”,“l”,“e”,“h”]

思路

  • 数组 reverse 方法

最简单、最直接的解法,既然是数组形式输出,直接调用数组的 reverse 方法倒置数组即可。但作为算法题,通常不推荐直接使用内置的 reverse 方法来解决。

  • 双指针方法

对于字符串,我们定义两个指针(也可以说是索引下标),一个指向字符串前面,一个指向字符串后面。两个指针同时向中间移动,并交换元素。

  • 代码实现
/**
 * @param {character[]} s
 * @return {void} Do not return anything, modify s in-place instead.
 */
 //数组方法实现
var reverseString = function(s) {
    return s.reverse();
};

//双指针方法实现
var reverseString = function(s) {
    let l = -1 
    let r = s.length
	while(++l < --r) [s[l], s[r]] = [s[r], s[l]];
    return s;
};

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

作者最新文章