JavaScript算法练习:字符串反转

特别声明:如果您喜欢小站的内容,可以点击申请会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!或添加QQ:874472854(^_^)

今天在freeCodeCamp上面刷题,碰到一题是有关于字符串反转。反转一个字符串是JavaScript中常见的面试题之一。可能面试官会给你一个字符串“Hello Word!”,让你通过JavaScript的方法,将其变成"!droW olleH"。

我也是初学者,利用前面所学数组相关的知识以及题目的提示,我算是过关了,后来想,是不是还有其他的方法能破此题呢?搜索了一下,还是有不少的方法,这里把这些方法罗列一下,以备后面可以使用。

要做的事情

我们要做的事情:

  • 将提供的字符串反向显示
  • 在反向字符串之前,需要将字符串转化成一个数组
  • 最终结果依旧是一个字符串

接下来,我们一起看看有哪些方法能实现上述要求。

使用内置函数

在练习题中,提示我们可以使用三种方法配合,能顺利让一个字符串反向显示:

  • String.prototype.split()
  • Array.prototype.reverse()
  • Array.prototype.join()

简单的过一下:

  • split()方法将一个字符串对象的每个字符拆出来,并且将每个字符串当成数组的每个元素
  • reverse()方法用来改变数组,将数组中的元素倒个序排列,第一个数组元素成为最后一个,最后一个变成第一个
  • join()方法将数组中的所有元素边接成一个字符串

来看个实例:

function reverseString(str) {
    // 第一步,使用split()方法,返回一个新数组
    // var splitString = "hello".split("");

    var splitString = str.split(""); //将字符串拆分

    // 返回一个新数组["h", "e", "l", "l", "o"]

    // 第二步,使用reverse()方法创建一个新数组
    // var reverseArray = ["h", "e", "l", "l", "o"].reverse();

    var reverseArray = splitString.reverse(); 
    // 原数组元素顺序反转["o", "l", "l", "e", "h"]

    // 第三步,使用join()方法将数组的每个元素连接在一起,组合成一个新字符串
    // var joinArray = ["o", "l", "l", "e", "h"].join("");

    var joinArray = reverseArray.join(""); 
    // "olleh"

    // 第四步,返回一个反转的新字符串
    return joinArray; // "olleh"
}

reverseString("hello"); // => olleh

将上面的方法简化一下,可以写成这样:

function reverseString(str) {
    return str.split("").reverse().join("");
}
reverseString("hello"); // => olleh

使用一个递减循环遍历将字符串反转

这种方法使用的是一个for循环给原字符串做一个递减遍历,然后将遍历的字符串重新合并成一个新字符串:

function reverseString(str) {
    // 第一步:创建一个空的字符串用来存储新创建的字符串

    var newString = "";

    // 第二步:使用for循环
    // 循环从str.length-1开始做递减遍历,直到 i 大于或等于0,循环将继续
    // str.length - 1对应的就是字符串最
剩余80%内容付费后可查看

如需转载,烦请注明出处:https://www.w3cplus.com/javascript/how-to-reverse-a-string-in-javascript-in-different-ways.html

如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!

赏杯咖啡,鼓励他创作更多优质内容!
返回顶部