Please enable Javascript to view the contents

JavaScript 8种字符串反转的方法

 ·  ☕ 2 分钟

在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”));

参考资料

分享

码中人
作者
码中人
Web Developer