js输入一个整型数,输出反转后的字符串

582 阅读1分钟

不使用递归实现

/*
 * @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)

效果

总结:使用递归的威力可想而知。(注意:使用递归的时候小心死循环,否则电脑蓝屏、卡死等情况会让你很尴尬)