不使用递归实现
/*
* @Description:
* @Author: Do not edit
* @Date: 2019-08-20 15:41:06
* @LastEditTime: 2019-08-20 17:26:54
* @LastEditors: winki
*/
/**
* 用 JavaScript 写一个函数,输入 int 型,
* 返回整数逆序后的字符串。如:输入整型 1234,返回字符串“4321”。
* 要求必须使用递归函数调用,不能用全局变量,输入函数必须只有一个参数传入,必须返回字符串。
*/
//achieve by simple example
var a = 1234;
(function reverse(num){
//use String() to change the type
var formart = String(num);
var arrStr = formart.split('');
for (let i = 0,j=Math.floor(arrStr.length)-1; i < Math.floor(arrStr.length/2); i++,j--) {
var temp = arrStr[i]
arrStr[i] = arrStr[j]
arrStr[j] = temp
}
var newArr = ''
arrStr.forEach(item =>{
newArr += item;
})
return newArr;
})(a);
效果
使用递归实现
//achieve by agorithm
var str = (function reverse(originStr){
if(originStr == null || originStr.length <= 1){
return originStr;
}
return reverse(originStr.substring(1)) + originStr.charAt(0);
})(String(1234));
console.log(str)
效果
总结:使用递归的威力可想而知。(注意:使用递归的时候小心死循环,否则电脑蓝屏、卡死等情况会让你很尴尬)