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)字符串
編寫一個(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)文章
TypeScript Type Innference(類型判斷)
TypeScript 是微軟開(kāi)發(fā)的 JavaScript 的超集,TypeScript兼容JavaScript,可以載入JavaScript代碼然后運(yùn)行。接下來(lái)通過(guò)本文給大家介紹TypeScript Type Innference(類型判斷)的相關(guān)知識(shí),需要的朋友參考下2016-03-03
js判斷手機(jī)號(hào)是否正確并返回的實(shí)現(xiàn)代碼
這篇文章主要介紹了js判斷手機(jī)號(hào)是否正確并返回的實(shí)現(xiàn)代碼,以及使用正則表達(dá)式判斷手機(jī)號(hào)是否正確,需要的的朋友參考下2017-01-01
實(shí)例學(xué)習(xí)JavaScript讀取和寫入cookie
本篇內(nèi)容主要給大家通過(guò)實(shí)例講述了JavaScript讀取和寫入cookie的相關(guān)知識(shí)點(diǎn),有這方面需要的朋友參考下吧。2018-01-01
兩種JavaScript的AES加密方式(可與Java相互加解密)
這篇文章主要介紹了兩種JavaScript的AES加密方式(可與Java相互加解密) 的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08
webpack實(shí)現(xiàn)一個(gè)行內(nèi)樣式px轉(zhuǎn)vw的loader示例
這篇文章主要介紹了webpack實(shí)現(xiàn)一個(gè)行內(nèi)樣式px轉(zhuǎn)vw的loader示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09

