zoukankan      html  css  js  c++  java
  • 当写递归的时候碰到的问题

    function persistence(num) {
        var numArr = num.toString().split("");
        var total = 1;
        for (var i = 0; i < numArr.length; i++) {
            total *= parseInt(numArr[i]);
        }
        
        if (total < 10) {
         cosnole.log(total);
    return total; } else { persistence(total); } } console.log(persistence(999));

    这种写法会出现错误,打印的结果为undefind, 原因是在进入else的时候没有将persistence  return出来,进入递归之后的返回值会一直在persistence函数的内部

    解决办法很简单

    function persistence(num) {
        var numArr = num.toString().split("");
        var total = 1;
        for (var i = 0; i < numArr.length; i++) {
            total *= parseInt(numArr[i]);
        }
        
        if (total < 10) {
            return total;
        } else {
            return persistence(total);
        }
    }
    
    
    console.log(persistence(999));

    在else的时候return这个函数出来,这样执行persistence就会返回执行函数,知道返回的是个个位数为止

  • 相关阅读:
    eas之Uuid和BOSUuid 区别
    BOS工具之BOS应用框架
    eas之EAS手工打包及快速部署工具
    S-HR体验中心
    wafII笔记
    eas之MrpUI
    S-HR快速查看shr日志
    S-HR二开基础
    linux安装mysql
    linux安装tomcat
  • 原文地址:https://www.cnblogs.com/kugeliu/p/7250923.html
Copyright © 2011-2022 走看看