今天,我们来写一个反转字符串的函数。它将实现如下所示:
"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"
  For 循环
创建一个空字符串,它将保存反向字符串,循环遍历字符串中的每个字符,并将其附加到新字符串的开头。
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
}
console.log(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)
console.log(reverseString('abcdefg')) // "gfedcba"
  Array.prototype.sort
使用 Array.prototype.sort 反转字符串,这里不过多介绍,跟上面其他方法差不多,你可以再 如何在 JavaScript 中对对象数组进行排序? 查看 sort 如何使用。
function reverseString(str) {
  return str
    .split('')
    .sort(() => -1)
    .join('');
}
console.log(reverseString('abcdefg')) // "gfedcba"
  递归
递归是通过使用调用自身的函数来解决问题的一种方法。每次函数调用自身时,它都会将问题简化为子问题。此递归调用将继续,直到到达无需进一步递归即可调用子问题的点为止。
注意:给予递归正确的终止条件,以确保不会导致无限循环。
- 递归终止的条件为字符串为空,将停止递归。
 - 使用 
String.prototype.substring()方法获取并删除字符串中的第一个字符,然后将其他字符传递给函数。在将第一个字符附加到return语句中- 。 
const reverseString = str => 
  str ? reverseString(str.substring(1)) + str[0] : str
console.log(reverseString('abcdefg')) // "gfedcba"

京公网安备 11010502036488号