从这篇开始与非将逐篇介绍在初级算法闯关中遇到的问题和记录,有疏漏和错误的地方希望大家可以帮忙指正。这里推荐一个MDN web docs网站,博客里的方法释义均来自此,点击相应位置可以获得详细释义。
问题描述
将一个字符串反转,得到相反顺序的字符串,比如 reverseString("hello")
返回"olleh"
。
所用方法
1、split()
点击查看完整释义
split()
方法使用指定的分隔符字符串将一个String对象分割成字符串数组,以将字符串分隔为子字符串,以确定每个拆分的位置。
语法:
str.split([separator[, limit]])
-
separator
你指定的进行拆分的分隔符。
比如你对一个字符串想在空格处将它们分割成数组,通常来说是这样的,一句话中的单词根据空格分开,输入`"Webkit Moz O ms Khtml".split(" ")`,则输出一个数组`["Webkit", "Moz", "O", "ms", "Khtml"]`。`separator`可以是一个字符串或正则表达式,如果分隔符为空字符串,则将str原字符串中每个字符的数组形式返回。
-
limit
一个整数,限定返回的分割片段数量。
如果 `limit` 为3,则返回找到的前 3 个分割元素。
2、reverse()
点击查看完整释义
reverse()
方法将数组中元素的位置颠倒。 第一个数组元素成为最后一个数组元素,最后一个数组元素成为第一个。 reverse
方法颠倒数组中元素的位置,并返回该数组的引用。
注意⚠️只对数组起作用。
语法:
arr.reverse()
3、join()
点击查看完整释义
join()
方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。
所有的数组元素被转换成字符串,再用一个分隔符将这些字符串连接起来。如果元素是undefined
或者null
,
则会转化成空字符串。
注意⚠️`join()`方法,不会改变数组。
语法:
str = arr.join()
// 默认为 ","
str = arr.join("")
// 分隔符 === 空字符串 ""
str = arr.join(separator)
// 分隔符
刚好是 split()
方法的反运算。
解决思路
将一个字符串先用 split()
方法分解成一个数组,再用 reverse()
方法将数组翻转,因为reverse
方法只作用于数组,最后用 join()
方法将反转后的数组重新连接为字符串输出。
我的代码
function reverseString(str) {
var strArray = str.split("");
var strReverse = strArray.reverse();
str = strReverse.join("");
return str;
}
reverseString("hello");
一些问题
- 一开始没有注意到
reverse
方法只能作用于数组。
「第 1 题完」