在JavaScript中,如果要做字符串反轉,我們第一時間會想到:
1
const str = "www.mzh.ren";
str.split('').reverse().join('');
// "ner.hzm.www"
即,字符串轉化為數組,調用數組的reverse()方法,連接數組成字符串。
string->array->reverse();


2
根據方法1,可以利用Array.prototype.slice.call(string)將字符串轉化成數組。
const str = "www.mzh.ren";
Array.prototype.slice.call(str).reverse().join('');
// "ner.hzm.www"
3
于是這個問題就變成了“如何將字符串轉化成數組”,那么,展開運算符(…)必須擁有姓名:
const str = 'www.mzh.ren';
[...str].reverse().join('');
// "ner.hzm.www"
4
Array.from()也不是不可以:
const str = "www.mzh.ren";
Array.from(str).reverse().join('');
// "ner.hzm.www"
5
Object.assign([],string) 也可以將字符串轉化為數組,算是奇技淫巧了。
const str = "www.mzh.ren";
Object.assign([], str).reverse().join('');
// "ner.hzm.www"
6
轉化成數組之后,也可以在連接方式做改變,Array.reduce() 方法,可以做一個拼接。
const str = "www.mzh.ren";
str.split('').reduce((prevs, curr) => curr + prevs);
// "ner.hzm.www"
7
for 循環當然也可以:
const reverseString = (str) => {
let i, j, reversed = [];
for (i=str.length-1, j=0; i>=0; i--, j++) {
reversed[j] = str[i];
}
return reversed.join('');
}
console.log ("reverse -", reverseString ("reverse"));
console.log ("reversed -", reverseString ("reversed"));
8
for循環就有更多的變種了,數組的push() 與 pop()方法也可以:
const reverseString = (str) => {
str = str.split('');
let reversed = [];
while (str.length > 0) {
reversed.push(str.pop());
}
return reversed.join('');
}
console.log ("reverse -", reverseString ("reverse"));
console.log ("reversed -", reverseString ("reversed"));
參考資料
- Seven ways to reverse a string in JavaScript – JavaScript in Plain English – Medium
- JavaScript實現字符串逆置的幾種方法 – 羅任德 – 博客園
- 4 Ways to Convert String to Character Array in JavaScript | SamanthaMing.com
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。
發表評論
請登錄后評論...
登錄后才能評論