需求: 反转字符串
方法一:
思路,定义一个新的字符串,用来接收遍历的字符串,代码如下
var str = "abcdef";
var newStr = '';
for (var i = str.length - 1; i >= 0; i--) { // 反过来遍历
newStr += str[i]; // 将字符串逐个添加到新字符串中
}
方法二:
思路:转换为数组 倒序再转为 字符串
str = str.split('').reverse().join('') // 优点代码简洁,十分易懂
方法三:
思路:ES6 解构赋值
str = str.split('');
for(var i = 0;i < str.length/2;i++){ // 遍历 难点是 i 的值
[str[i],str[str.length-1-i]] = [str[str.length-1-i],str[i]]
}
方法四:
思路:递归调用
function reverseStr(str) {
if (str == '') {
return ''
} else {
// str.substr(1)第一次的值是 bcdef 然后继续调用函数 cdef 直到值为空
return reverseStr(str.substr(1)) + str[0]
}
// 三元表达式写法
//return str == '' ? '' : reverseStr(str.substr(1)) + str[0];
}
暂时只想到了这么多,后续学习中如果还有什么方法在补充!!!