目录:
方案一:字符串转数组,反转数组,数组转字符串。
split(str)
: 拆分数组
reverse()
: 数组元素位置反转 (改变原数组)
join('')
: 数组转字符串,去掉分隔符’ , ’ 分隔符
function reverse(str) {
return str.split('').reverse().join('');
}
reverse('JavaScript字符串倒叙输出')// "出输叙倒串符字tpircSavaJ"
方案二:循环遍历字符串
function reverse(str) {
let res = '';
for (let i = str.length - 1; i >= 0; i--) {
res += str[i];
// or res += str.charAt(2);
}
return res;
}
reverse('JavaScript字符串倒叙输出')// "出输叙倒串符字tpircSavaJ"
方案三:使用到模拟栈的数组pop/push方法
arr.pop()
: 取出数组最后一个元素,并在原数组删除该元素 (改变原数组)
arr.push(item)
: 数组中加入新元素**(改变原数组)**
function reverse(str) {
const strArr = str.split('');
let newStrArr = []
//while(strArr.length>0){
// newStrArr.push(strArr.pop())
//}
for(let i = str.length - 1; i >= 0; i--){
newStrArr.push(strArr.pop())
}
return newStrArr.join('')
}
reverse('JavaScript字符串倒叙输出')// "出输叙倒串符字tpircSavaJ"
扩展 :
1. JavaScript模拟栈操作
function mockStack(){
var arr=[]
for(var i=1;i<5;i++){
arr.push(i)
console.log(`进栈 - ${i} , 当前数组 > ${JSON.stringify(arr)}`)
};
for(var k=0,len=arr.length;k<len;k++){
console.log(`出栈 - ${arr.pop()} , 当前数组 > ${JSON.stringify(arr)}`)
}
}
mockStack()
2. 数组reverse()
会改变原数组
let arr = [1,2,3];
let newArr = arr.reverse();
console.log(`倒置操作后的原数组:${arr} , 倒置的新数组 ${newArr}`) // 倒置操作后的原数组:3,2,1 , 倒置的新数组 3,2,1
注意:在操作数组的时候我们需要注意哪些操作会改变原数组!!!