gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

es6怎么實現字符串反轉

實現方法:1、用split、reverse和join函數,語法“str.split('').reverse().join('');”;2、用遞減的for循環,語法“for(i=字符串長度-1;i>=0;i–){nS+=str[i];}”;3、用遞歸,語法“function f(s){return s===''?'':f(s.substr(1))+s.charAt(0)}”。

es6怎么實現字符串反轉

前端(vue)入門到精通課程:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用

本教程操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。

反轉字符串 是技術面試中最常問到的 JavaScript 問題之一。 面試官可能會要求你使用不同的編碼方式來反轉字符串,或者他們可能會要求你不使用內置方法來反轉字符串,甚至會要求你使用遞歸來反轉字符串。

可能有數十種不同的方法可以執行此操作,但內置reverse方法除外,因為 JavaScript 的 String 對象上沒有此方法

以下是我解決 JavaScript 反轉字符串問題的三種最有趣的方法。

算法要求

反轉提供的字符串.
你可能需要將字符串轉換為數組,然后才能將其反轉.
你的結果必須是字符串.

function reverseString(str) {     return str; } reverseString('hello');
登錄后復制

提供測試用例

  • reverseString(“hello”) 應該返回 “olleh”
  • reverseString(“Howdy”) 應該返回 “ydwoH”
  • reverseString(“Greetings from Earth”) 應該返回 ”htraE morf sgniteerG”

1. 使用內置方法反轉字符串

對于此解決方案,我們將使用三種方法:String.prototype.split() 方法,Array.prototype.reverse() 方法和 Array.prototype.join() 方法。

  • split() 方法使用指定的分隔符字符串將一個 String 對象分割成子字符串數組,以一個指定的分割字串來決定每個拆分的位置
  • reverse() 方法將數組中元素的位置顛倒,并返回該數組。數組的第一個元素會變成最后一個,數組的最后一個元素變成第一個。該方法會改變原數組
  • join() 方法將一個數組(或一個類數組對象)的所有元素連接成一個字符串并返回這個字符串。如果數組只有一個項目,那么將返回該項目而不使用分隔符

function reverseString(str) {     // Step 1. 使用 split()方法返回一個新數組     var splitString = str.split(''); // var splitString = "hello".split("");     // ["h", "e", "l", "l", "o"]      // Step 2.使用 reverse()方法 翻轉數組     var reverseArray = splitString.reverse(); // var reverseArray = ["h", "e", "l", "l", "o"].reverse();     // ["o", "l", "l", "e", "h"]      // Step 3.使用 join()方法 組合所有的數組元素,從而變成一個新字符串     var joinArray = reverseArray.join(''); // var joinArray = ["o", "l", "l", "e", "h"].join("");     // "olleh"      //Step 4. 返回翻轉后的字符串     return joinArray; // "olleh" }  reverseString('hello');
登錄后復制

三個方法組合形成鏈式調用:

function reverseString(str) {     return str.split('').reverse().join(''); } reverseString('hello');
登錄后復制

2. 用遞減的 for 循環反轉字符串

function reverseString(str) {     // Step 1. 創建一個空字符串,用來存儲后面新創建的字符串     var newString = '';      // Step 2.創建for循環     /* 循環的起點是(str.length-1),它對應于         字符串的最后一個字符“o”         只要i大于或等于0,循環就會繼續         每次迭代后遞減i */     for (var i = str.length - 1; i >= 0; i--) {         newString += str[i]; // or newString = newString + str[i];     }     /* "hello"的length等于 5         每次循環的公式: i = str.length - 1 and newString = newString + str[i]         第一次循環:   i = 5 - 1 = 4,         newString = "" + "o" = "o"         第二次循環:   i = 4 - 1 = 3,         newString = "o" + "l" = "ol"         第三次循環:   i = 3 - 1 = 2,         newString = "ol" + "l" = "oll"         第四次循環:   i = 2 - 1 = 1,         newString = "oll" + "e" = "olle"         第五次循環:   i = 1 - 1 = 0,         newString = "olle" + "h" = "olleh"     結束for循環*/      // Step 3. 返回已翻轉的字符串     return newString; // "olleh" }  reverseString('hello');
登錄后復制

刪除注釋:

function reverseString(str) {     var newString = '';     for (var i = str.length - 1; i >= 0; i--) {         newString += str[i];     }     return newString; } reverseString('hello');
登錄后復制

3. 用遞歸反轉字符串

對于此解決方案,我們將使用兩種方法:String.prototype.substr() 方法和 String.prototype.charAt() 方法

  • substr() 方法返回一個字符串中從指定位置開始到指定字符數的字符.

譯者注:

盡管 String.prototype.substr(……) 沒有嚴格被廢棄 (as in "removed from the Web standards"), 但它被認作是遺留的函數并且可以的話應該避免使用。它并非 JavaScript 核心語言的一部分,未來將可能會被移除掉。如果可以的話,使用 substring() 替代它.

'hello'.substr(1); // "ello"
登錄后復制

  • charAt() 方法從一個字符串中返回指定的字符.

'hello'.charAt(0); // "h"
登錄后復制

遞歸的深度等于 String 的長度。 當 String 很長且堆棧大小是主要問題的時候,代碼運行非常慢。所以此方案不是最佳解決方案

function reverseString(str) {   if (str === "") // 如果傳入空字符串,則直接返回它     return "";   else     return reverseString(str.substr(1)) + str.charAt(0); /* 遞歸方法的第一部分 你需要記住不會只有一次回調,會存在多次嵌套回調 每次回調的公式: str === "?"                         reverseString(str.subst(1))     + str.charAt(0) 1st call – reverseString("Hello")   will return   reverseString("ello")           + "h" 2nd call – reverseString("ello")    will return   reverseString("llo")            + "e" 3rd call – reverseString("llo")     will return   reverseString("lo")             + "l" 4th call – reverseString("lo")      will return   reverseString("o")              + "l" 5th call – reverseString("o")       will return   reverseString("")               + "o" 遞歸方法的第二部分 該方法達一旦到if條件,嵌套最深的調用會立即返回 */
登錄后復制

刪除注釋:

function reverseString(str) {     if (str === '') return '';     else return reverseString(str.substr(1)) + str.charAt(0); } reverseString('hello');
登錄后復制

使用三元表達式:

function reverseString(str) {     return str === '' ? '' : reverseString(str.substr(1)) + str.charAt(0); } reverseString('hello');
登錄后復制

JavaScript 字符串反轉 是一種小型且簡單的算法,在電話技術篩查或技術面試中都可能被問到。 你可以采用最簡單的方式解決此問題,也可以采用遞歸或更復雜的解決方案來解決。

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
欧美 亚洲 视频| 人妻av中文系列| 成人免费无码av| 国产成人a亚洲精v品无码| 日本福利视频在线观看| 亚洲第一综合网站| 2021狠狠干| 日本一道在线观看| 国产日韩第一页| wwwjizzjizzcom| 屁屁影院ccyy国产第一页| 男女h黄动漫啪啪无遮挡软件| xx欧美撒尿嘘撒尿xx| 午夜精品中文字幕| 中文字幕av导航| 超碰人人爱人人| 欧美三级在线观看视频| 青青草精品视频在线| 欧美 日本 亚洲| 欧美成人黑人猛交| 九九久久久久久| 中文字幕の友人北条麻妃| 国产午夜精品视频一区二区三区| 精品国产一区二区三区在线| 欧洲精品在线播放| 日本男人操女人| 日韩欧美中文视频| 成人在线免费高清视频| 免费成人午夜视频| 久久婷婷国产91天堂综合精品| 欧美黄色免费影院| 日本一二区免费| 国产成人亚洲综合无码| 久久午夜夜伦鲁鲁一区二区| 久久久久久香蕉| 国产av第一区| 国产99久久九九精品无码| 国产一级特黄a大片免费| 色婷婷一区二区三区在线观看| 中文字幕一区久久| 国产91视频一区| 亚欧在线免费观看| 欧美狂野激情性xxxx在线观| 久久美女福利视频| 国风产精品一区二区| 国产精品网站免费| 欧美与动交zoz0z| 国产熟女高潮视频| 日本国产一级片| 色综合av综合无码综合网站| www.偷拍.com| 人妻无码视频一区二区三区| 穿情趣内衣被c到高潮视频| 男人添女荫道口女人有什么感觉| 韩国日本在线视频| 91九色在线观看视频| 9191国产视频| 成人性做爰aaa片免费看不忠| 九色porny自拍| 黄色a级片免费| 欧美成人精品免费| 日韩精品一区二区在线视频| 亚洲天堂一区二区在线观看| 日韩一区二区三区不卡视频| 又粗又黑又大的吊av| 免费观看国产精品视频| 免费特级黄色片| 久久久久久久久久网| 日韩成人三级视频| 国产精品久久久影院| 亚洲天堂一区二区在线观看| 黄色永久免费网站| 噼里啪啦国语在线观看免费版高清版 | 中国黄色录像片| 做爰高潮hd色即是空| √天堂资源在线| 午夜天堂在线视频| 成年人黄色在线观看| 国产成人黄色网址| 欧美激情第四页| 成人一级生活片| 久久无码高潮喷水| 99九九99九九九99九他书对| 亚洲精品无码久久久久久| 成人免费无码av| 毛毛毛毛毛毛毛片123| 国产奶头好大揉着好爽视频| 99热都是精品| 欧美三级在线观看视频| 国产精彩免费视频| 警花观音坐莲激情销魂小说| 欧美成人免费在线观看视频| mm1313亚洲国产精品无码试看| 日本一本二本在线观看| 男女男精品视频站| 久久久久久久免费视频| 免费无码毛片一区二三区| 欧美亚洲另类色图| 日韩在线xxx| 亚洲最新免费视频| 国产午夜伦鲁鲁| 色啦啦av综合| 国产男女免费视频| 久久久精品麻豆| 国产精品成人久久电影| 日本人69视频| 国产原创中文在线观看| 善良的小姨在线| 日韩av片网站| 日韩精品―中文字幕| 中文字幕一区二区在线观看视频| 日日摸日日碰夜夜爽无码| 天堂av.com| www.激情小说.com| 人妻有码中文字幕| 欧美视频在线观看网站| 波多野结衣网页| 天天综合成人网| 四季av一区二区| 国产精品-区区久久久狼| www.日本少妇| av在线com| 国产美女主播在线播放| 四虎永久免费网站| 午夜在线视频免费观看| 中文字幕剧情在线观看| 人人爽人人爽av| 三级av免费看| 蜜臀av.com| 妞干网这里只有精品| 手机福利在线视频| 国产一区一区三区| 天天爱天天做天天操| 一级全黄肉体裸体全过程| 交换做爰国语对白| 亚洲成人动漫在线| 成人免费网站入口| 日本免费黄视频| 激情 小说 亚洲 图片: 伦| 自拍偷拍 国产| 日本77777| 国产资源第一页| 内射国产内射夫妻免费频道| 国内外成人免费激情视频| 精品中文字幕av| 色播五月综合网| 欧美aaa在线观看| 人人妻人人澡人人爽欧美一区| 日韩一级性生活片| 成年人观看网站| 男人的天堂最新网址| 欧美美女黄色网| 国产精品动漫网站| 日本福利视频导航| 亚洲熟妇国产熟妇肥婆| 91人人澡人人爽人人精品| 最近中文字幕免费mv| 精品国产av无码一区二区三区| 99色精品视频| 99国产精品久久久久久| 亚洲色成人www永久在线观看| av之家在线观看| 午夜一区二区视频| 日韩精品一区在线视频| 污污的视频免费| 国产69精品久久久久999小说| 午夜免费福利在线| 精品人妻大屁股白浆无码| 手机看片福利盒子久久| 成年在线观看视频| www.超碰97.com| 国产成人精品视频免费看| 国产系列第一页| 18岁视频在线观看| 国产一二三区在线播放| 99精品视频国产| 欧美xxxxx在线视频| 91网站在线观看免费| 99re精彩视频| 久久久久久久久久福利| 国产一二三区在线播放| 激情图片qvod| 一级全黄肉体裸体全过程| 在线观看亚洲色图| 日韩av在线综合| 亚欧无线一线二线三线区别| av动漫在线播放| 法国空姐在线观看免费| 在线观看免费的av| 亚洲天堂网一区| 日本免费黄视频| 国产h视频在线播放| 免费一级特黄毛片| 真人抽搐一进一出视频| 日本一级黄视频| 中文精品无码中文字幕无码专区 | 国产青草视频在线观看| 精品人妻大屁股白浆无码| 日韩中文在线字幕| av 日韩 人妻 黑人 综合 无码|