字符串反转_JavaScript
今天在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"); // =gt; olleh 将上面的方法简化一下,可以写成这样: function reverseString(str) { return str.split("").reverse().join(""); }reverseString("hello"); // =gt; olleh 使用一个递减循环遍历将字符串反转 这种方法使用的是一个 function reverseString(str) { // 第一步:创建一个空的字符串用来存储新创建的字符串 var newString = ""; // 第二步:使用for循环 // 循环从str.length-1开始做递减遍历,直到 i 大于或等于0,循环将继续 // str.length - 1对应的就是字符串最后一个字符o for (var i = str.length - 1; i gt;= 0; i--) { newString += str[i]; // 或者 newString = newString + str[i]; } // 第三步:返回反转的字符串 return newString; }reverseString('hello'); // =gt; // "olleh" 简单的看看字符串遍历的过程。假设需要将字符串"hello"反转。其整个遍历过程如下表所示:
| 迭代顺序 | 对应 | 新字符串 newString 每次迭代 str.length - 1 newString + str[i] 第一次迭代 5 - 1 = 4 "" + "o" = "o" 第二次迭代 4 - 1 = 3 "o" + "l" = "ol" 第三次迭代 3 - 1 = 2 "ol" + "l" = "oll" 第四次迭代 2 - 1 = 1 "oll" + "e" = "olle" 第五次迭代 1 - 1 = 0 "olle" + "h" = "olleh" |
---|
- Windows 11部分驱动可追溯至1968年 微软做出说明回应
- 消息称 Chrome 正开发新功能:将 tab 拖到另一个浏览器
- 在Windows 10中从视频中删除声音的3种简单方法
- 别再坚守Windows 7了 硬件厂商都集体嫌弃你了
- 在Fedora中获取最新的Ansible 2.8
- windows-server-2000 – 如何在Windows 2000服务器上生成Wi
- windows – 如何阻止远程桌面由于不活动而关闭我的会话?
- windows-update – 是否有“wusa.exe”的完整返回代码列表?
- 如何修复Windows 10中的IntcOED错误
- windows10重装系统所有详细过程