JavaScript實現字符串逆置的幾種方法

 

1. 通常來講js實現字符串逆置輸出的通常思路是:

一、將字符串轉爲數組,一個字符爲數組的一個元素; 
二、將數組倒置; 
三、再將數組元素拼接爲字符串。javascript

2. 通常用到的方法有:

join():該方法用於把數組中的全部元素放入一個字符串。元素是經過指定的分隔符進行分隔的。 
split():將一個字符串分割爲子字符串數組,而後將結果做爲字符串數組返回。 
reverse():返回一個元素順序被反轉的 Array 對象。 
charAt(): 返回指定位置的字符。java

3. 下面是幾種利用js都實現了字符串的逆置輸出。

/*方法一:利用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); 

 

4.堆棧的補充理解

堆棧實現: 
pop() :刪除集合的最後一個元素,並返回元素的值。 
push() :將元素添加到集合的結尾。數組

棧的主要方法和屬性: 
入棧。push方法; 
出棧。pop方法; 
訪問棧頂元素。peek方法; 
清除全部棧內元素。clear方法; 
記錄棧頂位置。top屬性; 
判斷棧內是否有元素存在。length方法;函數

PS:若是您還有更好更多的字符串逆序的實現方式,歡迎給我留言或與本人聯繫哦.this

相關文章
相關標籤/搜索