JavaScript实现-字符串翻转-Reverse a String

来源:互联网 发布:免费期刊文献资源 知乎 编辑:程序博客网 时间:2024/05/16 13:44

JavaScript实现-字符串翻转-Reverse a String

思路:先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串。

大部分代码是这样的:

  1. function reverseString(str) {  
  2.   var newstr = str.split("").reverse().join("");  
  3.   return newstr;  
  4. }  


实际有很大问题!

参考:http://es6.ruanyifeng.com/#docs/array

正确的

// (4)字符串
function length(str){
return [...str].length;
}
let str ='x\uD83D\uDE80y';
let reverseStr ='y\uD83D\uDE80x';
console.log([...str].length);//3
console.log(length(str));//3
console.log(str.length);//4 JavaScript 会将四个字节的 Unicode 字符,识别为 2 个字符,采用扩展运算符就没有这个问题

//字符串翻转----错误(因为字符串长度为3,不是4)
let str2 =str.split('').reverse().join('');
// 'y\uDE80\uD83Dx'

let str3 = [...str].reverse().join('');
// 'y\uD83D\uDE80x'
console.log(str2,str3);
//上面代码中,如果不用扩展运算符,字符串的reverse操作就不正确。

if(reverseStr==str2){
console.log("------------true-----str2----");
}

if(reverseStr==str3){
console.log("------------true---str3------");
}



/**
* 字符串反转
* @param{*} str
*/
function reverseString(str){
return [...str4].reverse().join('');
}








阅读全文
0 0
原创粉丝点击