JavaScript 反转字符串

作者: lio_zero | 来源:发表于2021-05-21 23:40 被阅读0次

今天,我们来写一个反转字符串的函数。它将实现如下所示:

"abcdefg" -> "gfedcba"

Array.prototype.reverse()

最简便的操作是使用 Array.prototype.reverse() 方法,它将数组中元素的位置颠倒,并返回该数组。该方法会改变原数组。

  • 使用 String.prototype.split() 方法将字符串转换为数组。
  • 使用 Array.prototype.reverse() 方法将其反转,然后使用 Array.prototype.join() 方法将其转换回字符串
const reverseString = str => str.split('').reverse().join('')

console.log(reverseString('abcdefg')) // "gfedcba"

循环

创建一个空字符串,它将保存反向字符串,循环遍历字符串中的每个字符,并将其附加到新字符串的开头。

const reverseString = str => {
  let result = ''

  for (let i = str.length - 1; i >= 0; i--) {
    result += str[i]
  }

  return result
}

console.log(reverseString('abcdefg')) // "gfedcba"

使用 for ... of

const reverseString = str => {
  let result = ''
  
  for (let character of str) {
    result += character
  }
  
  return reverseString
}

reverseString('abcdefg') // "gfedcba"

Array.prototype.reduce()

Array.prototype.reduce() 方法对数组中的每个元素执行一个由您提供的 reducer 函数(升序执行),将其结果汇总为单个返回值。

  • 使用 String.prototype.split() 方法将字符串转换为数组。也可以使用扩展运算符,看你
  • 使用 Array.prototype.reduce() 方法将其转换为字符串。
const reverseString = str => str.split('').reduce((rev, char) => char + rev, '')

console.log(reverseString('abcdefg')) // "gfedcba"

也可以使用 Array.prototype.reduceRight()

const reverseString = (str) => [...str].reduceRight((acc, cur) => acc + cur)

reverseString('abcdefg') // "gfedcba"

Array.prototype.sort

使用 Array.prototype.sort 反转字符串,这里不过多介绍,跟上面其他方法差不多,你可以再 如何在 JavaScript 中对对象数组进行排序? 查看 sort 如何使用。

function reverseString(str) {
  return str
    .split('')
    .sort(() => -1)
    .join('');
}

reverseString('abcdefg') // "gfedcba"

递归

递归是通过使用调用自身的函数来解决问题的一种方法。每次函数调用自身时,它都会将问题简化为子问题。此递归调用将继续,直到到达无需进一步递归即可调用子问题的点为止。

注意:给予递归正确的终止条件,以确保不会导致无限循环。

  • 递归终止的条件为字符串为空,将停止递归。
  • 使用 String.prototype.substring() 方法获取并删除字符串中的第一个字符,然后将其他字符传递给函数。在将第一个字符附加到 return 语句中- 。
const reverseString = str => str ? reverseString(str.substring(1)) + str[0] : str

reverseString('abcdefg') // "gfedcba"

相关文章

  • 算法合集

    JavaScript版数据结构与算法 javascript反转字符串中的单词JavaScript计数二进制子串Ja...

  • JavaScript 反转字符串

    今天,我们来写一个反转字符串的函数。它将实现如下所示: Array.prototype.reverse() 最简便...

  • JavaScript字符串反转截取

    实现思路: 1.反转目标字符串;2.截取反转后的字符串;3.在反转一次恢复原来的字符串顺序 方法调用

  • JavaScript实现字符串反转

    最简单好记的实现方法居然才一行代码而已 相关知识点:JavaScript split方法 split() 方法用于...

  • C 字符串反转

    指针反转 数组字符串反转

  • 字符串/数组反转

    题目:翻转字符串“algorithm”在php中有反转的自带函数,分别为:字符串反转:strrev() 数组反转:...

  • 前端常见算法题(字符串篇)

    一、反转字符串 2020.09.01 No.344 反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入...

  • 数据结构之反转字符串

    反转字符串 题目描述:将字符串"##We###Are###Family!###"反转为"###!ylimaF###...

  • leecode刷题(11)-- 反转字符串

    leecode刷题(11)-- 反转字符串 反转字符串 描述: 编写一个函数,其作用是将输入的字符串反转过来。 示...

  • JavaScript中的字符串

    @(javascript)[js字符串][toc] JavaScript中的字符串 字符串是JavaScript中...

网友评论

    本文标题:JavaScript 反转字符串

    本文链接:https://www.haomeiwen.com/subject/xxagjltx.html