js字符串反转函数(react收集表单数据插件)

在JavaScript中,如果要做字符串反转,我们第一时间会想到: 1 conststr="www.mzh.ren"; str.split('').reverse().join(''); //"ner.hzm.www" 即,字符串转化为数组,调用数组的reverse()方法,连接数组成字符串。 string->array->reverse(); 2 根据方法1,可以利用Array.pr…

在JavaScript中,如果要做字符串反转,我们第一时间会想到:

1

const str = \"www.mzh.ren\";
str.split(\'\').reverse().join(\'\');
// \"ner.hzm.www\"

即,字符串转化为数组,调用数组的reverse()方法,连接数组成字符串。

string->array->reverse();

js字符串反转函数(react收集表单数据插件)

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

本文来自投稿,不代表来拓客立场,如若转载,请注明出处:https://www.laituoke.com/ltk/4579.html