一、将字符串转为数组,一个字符为数组的一个元素;
二、将数组倒置;
三、再将数组元素拼接为字符串。javascript
join():该方法用于把数组中的全部元素放入一个字符串。元素是经过指定的分隔符进行分隔的。
split():将一个字符串分割为子字符串数组,而后将结果做为字符串数组返回。
reverse():返回一个元素顺序被反转的 Array 对象。
charAt(): 返回指定位置的字符。java
/*方法一:利用Array对象的reverse()方法,用于颠倒数组中元素的顺序。*/ var str1 = "abcdefg"; var result1 = str1.split("").reverse().join(""); console.log(result1); //gfedcba /*方法二:*/ var str2 = "abcdefg"; for(var i = str2.length - 1; i >= 0; i--){ console.log(str2.charAt(i)); //结果:逆序输出abcdefg,可是每行只输出一个字符 } /*方法三:调用一个单独的函数实现*/ function Reverse(str) { var len = str.length; var result = ""; if(len == 0){ return null; } while( --len >= 0 ){ result += str.charAt(len); } return result; //gfedcba } var str3 = "abcdefg"; var result3 = Reverse(str3); console.log(result3); /*方法四:利用call():调用一个对象的一个方法,以另外一个对象替换当前对象。*/ var str4 = "abcdefg"; var result4 = Array.prototype.slice.call(str4).reverse().join(""); console.log(result4); //gfedcba /*方法五:利用排序实现*/ function Sort(a,b) { return b.localeCompare(a); //反序排列 //return a.localeCompare(b); //正序排列 } var str5 = "abcdefg"; var result5 = str5.split("").sort(Sort).join(""); console.log(result5); //gfedcba /*方法六:利用堆栈实现字符串逆置输出:先实现一个栈,而后再利用这个栈将字符串逆置输出*/ function stack() { this.data = []; //保存栈内元素 this.top = 0; //记录栈顶位置 } stack.prototype = { push: function push(element) { //入栈:先在栈顶添加元素,而后元素个数加1 this.data[this.top++] = element; }, pop: function pop() { //出栈:先返回栈顶元素,而后元素个数减1 return this.data[--this.top]; }, peek: function peek() { //查找栈顶元素 return this.data[this.top-1]; }, clear: function () { //清空栈内元素 this.top = 0; }, length: function () { //返回栈内的元素个数,即长度 return this.top; } } function reverse(str) { //利用这个栈实现字符串逆置输出 var s = new stack(); //建立一个栈的实例 var arr = str.split(''); //将字符串转成数组 var len = arr.length; for(var i=0; i<len; i++){ //将元素压入栈内 s.push(arr[i]); } for(var i=0; i<len; i++){ //输出栈内元素 console.log(s.pop()); } } var str6 = "abcdefg"; reverse(str6);
堆栈实现:
pop() :删除集合的最后一个元素,并返回元素的值。
push() :将元素添加到集合的结尾。数组
栈的主要方法和属性:
入栈。push方法;
出栈。pop方法;
访问栈顶元素。peek方法;
清除全部栈内元素。clear方法;
记录栈顶位置。top属性;
判断栈内是否有元素存在。length方法;函数
PS:若是您还有更好更多的字符串逆序的实现方式,欢迎给我留言或与本人联系哦.this