js?字符串反轉(zhuǎn)(倒序)的幾種方式總結(jié)
js 字符串反轉(zhuǎn)(倒序)方式
第一種
let str = "i am good man"; let newStr = str.split('').reverse().join(""); console.log(newStr)
首先將字符串轉(zhuǎn)為數(shù)組,再反轉(zhuǎn)數(shù)組,最后將數(shù)組轉(zhuǎn)為字符串
split("")
------根據(jù)字符串拆分?jǐn)?shù)組reverse()
------數(shù)組反轉(zhuǎn)元素位置join("")
-------數(shù)組轉(zhuǎn)回字符串,不帶分隔符
第二種
let str = "i am good man "; let newStr = ""; for(let i = 0;i<str.length;i++){ ? ? let s = str.charAt(str.length-i-1) ? ? newStr += s; } console.log(newStr)//nam doog ma i //從尾部開(kāi)始遍歷字符串,然后逐個(gè)拼接字符,得到最終的結(jié)果。
定義新的空字符串,遍歷str,charAt() 是提取字符串的一個(gè)字符,先去最后一個(gè)字符,再取第二個(gè),依次取,將取到的結(jié)果都放到新的字符前面,以此來(lái)實(shí)現(xiàn)倒序
第三種
let str ="i am good man"; let newStr = Array.prototype.slice.call(str); console.log(newStr.reverse().join(""))//nam doog ma i
通過(guò)call方法來(lái)改變slice方法的執(zhí)行主體。將數(shù)組的slice方法調(diào)用call方法后,可以讓字符串具有數(shù)組的特性,從而可以直接調(diào)用reverse方法,最后再通過(guò)調(diào)用join方法,得到逆序字符串。
js 算法筆記——反轉(zhuǎn)字符串
反轉(zhuǎn)字符串
編寫(xiě)一個(gè)函數(shù),其作用是將輸入的字符串反轉(zhuǎn)過(guò)來(lái)。輸入字符串以字符數(shù)組 char[] 的形式給出。
示例 1:
- 輸入:[“h”,“e”,“l”,“l”,“o”]
- 輸出:[“o”,“l”,“l”,“e”,“h”]
思路
- 數(shù)組reverse方法
最簡(jiǎn)單,最直接的解法,既然是數(shù)組形式輸出,直接數(shù)組reverse方法倒置數(shù)組即可,既然是算法題,肯定是不希望用數(shù)組reverse方法來(lái)解決。
- 雙指針?lè)椒?/strong>
對(duì)于字符串,我們定義兩個(gè)指針(也可以說(shuō)是索引下表),一個(gè)從字符串前面,一個(gè)從字符串后面,兩個(gè)指針同時(shí)向中間移動(dòng),并交換元素。
- 代碼實(shí)現(xiàn)
/** * @param {character[]} s * @return {void} Do not return anything, modify s in-place instead. */ //數(shù)組方法實(shí)現(xiàn) var reverseString = function(s) { return s.reverse(); }; //雙指針?lè)椒▽?shí)現(xiàn) var reverseString = function(s) { let l = -1 let r = s.length while(++l < --r) [s[l], s[r]] = [s[r], s[l]]; return s; };
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
iframe子頁(yè)面與父頁(yè)面在同域或不同域下的js通信
根據(jù)iframe中src屬性是同域鏈接還是跨域鏈接,通信方式也不同,下面有個(gè)不錯(cuò)的示例,需要的朋友可以參考下2014-05-05淺談js for循環(huán)輸出i為同一值的問(wèn)題
下面小編就為大家?guī)?lái)一篇淺談js for循環(huán)輸出i為同一值的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03使用原生JS添加進(jìn)場(chǎng)和退場(chǎng)動(dòng)畫(huà)詳解
總所周知啊,身為一個(gè)合格的前端搬磚工,會(huì)編寫(xiě)并且添加一些基礎(chǔ)的動(dòng)畫(huà)效果可謂是比較基礎(chǔ)且輕車熟路的技能了。本文將教大家如何使用原生JS添加進(jìn)場(chǎng)和退場(chǎng)動(dòng)畫(huà),感興趣的可以了解一下2022-10-10基于javascript html5實(shí)現(xiàn)3D翻書(shū)特效
這篇文章主要介紹了基于javascript html5實(shí)現(xiàn)翻書(shū)特效的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03限制復(fù)選框最多選擇項(xiàng)的實(shí)現(xiàn)代碼
下面小編就為大家?guī)?lái)一篇限制復(fù)選框最多選擇項(xiàng)的實(shí)現(xiàn)代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05js獲得地址欄?問(wèn)號(hào)后參數(shù)的方法
這篇文章介紹了js獲得地址欄?問(wèn)號(hào)后參數(shù)的方法,有需要的朋友可以參考一下2013-08-08js前端存儲(chǔ)之sessionStorage使用方法舉例
sessionStorage是指本地存儲(chǔ)一個(gè)會(huì)話中的數(shù)據(jù),這些數(shù)據(jù)只有在同一個(gè)會(huì)話中的頁(yè)面才能訪問(wèn)并且當(dāng)會(huì)話結(jié)束后數(shù)據(jù)也隨之銷毀,這篇文章主要給大家介紹了關(guān)于js前端存儲(chǔ)之sessionStorage使用方法的相關(guān)資料,需要的朋友可以參考下2024-06-06