js 字符串反转(倒序)方式
第一种
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 //从尾部开始遍历字符串,然后逐个拼接字符,得到最终的结果。
定义新的空字符串,遍历str,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方法,得到逆序字符串。
js 算法笔记——反转字符串
反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 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; };
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。