- 使用reverse()函數(shù)
思路:首先將字符串轉(zhuǎn)換為字符數(shù)組魂仍,然后使用原生的reverse()函數(shù)進(jìn)行逆序拐辽,得到逆序數(shù)組后再通過join()函數(shù)轉(zhuǎn)換成逆序字符串。
代碼:
function reverseString(str) {
return str.split('').reverse().join('');
}
var str = 'abcde';
console.log(reverseString(str)); //edcba
- 使用棧的先進(jìn)后出原則
思路:利用棧先進(jìn)后出的特點(diǎn)
代碼:
function Stack() {
this.data = []; //保存在棧內(nèi)的元素
this.top = 0; // 記錄棧頂?shù)奈恢?}
Stack.prototype = {
// 入棧擦酌,在棧頂計(jì)入元素
push: function (element) {
this.data[this.top++] = element;
},
// 出棧俱诸,返回棧頂元素
pop: function () {
return this.data[--this.top];
},
// 棧的元素長(zhǎng)度
length: function () {
return this.top;
}
}
function reverseString(str) {
var s = new Stack();
var arr = str.split('');
var len = arr.length;
var result = '';
// 入棧
for (let i = 0; i < len; i++) {
s.push(arr[i])
}
// 出棧
for (let i = 0; i < len; i++) {
result += s.pop(arr[i]);
}
return result;
}
var str = 'abcde';
console.log(reverseString(str)); // edcba
- 利用遞歸算法
思路:使用charAt() 方法,charAt() 方法可返回指定位置的字符
語法
stringObject.charAt(index)
index:表示字符串中某個(gè)位置的數(shù)字赊舶,即字符在字符串中的下標(biāo)睁搭。
代碼:
function reverseString(str, len, res) {
if (len < 0) return res;
res += str.charAt(len--);
return reverseString(str, len, res);
}
var str = 'abcde';
var res = '';
console.log(reverseString(str, str.length - 1, res)); // edcba