js字符串反转函数(react收集表单数据插件)
程序员文章站
2023-12-05 19:10:04
在javascript中,如果要做字符串反转,我们第一时间会想到:1const str = "www.mzh.ren";str.split('').reverse().join('');// "ner...
在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