zoukankan      html  css  js  c++  java
  • js 递归下的循环

    的递归下的循环不能使用forEach  可以使用for代替

    错误写法

    // 获取完整名字
            var getFullName = function(code, resultName) {
              if (code === '0') {
                return resultName;
              } else {
                popup.fullData.forEach(function (val) {
                  if (code === val.code) {
                    var text = val.text + resultName;
                    return getFullName(val.parentcode, text);                
                  }
                });
                /*for (var i = 0, length = popup.fullData.length; i < length; i++) {
                  if (code === popup.fullData[i].code) {
                    var text = popup.fullData[i].text + resultName;
                    return getFullName(popup.fullData[i].parentcode, text);
                    break;
                  }
                }*/
              }
            };

    正确写法

    // 获取完整名字
            var getFullName = function(code, resultName) {
              if (code === '0') {
                return resultName;
              } else {
                for (var i = 0, length = popup.fullData.length; i < length; i++) {
                  if (code === popup.fullData[i].code) {
                    var text = popup.fullData[i].text + resultName;
                    return getFullName(popup.fullData[i].parentcode, text);
                    break;
                  }
                }
              }
            };

    可能原因是foreach中的return是终端循环作用  而不是返回总用  具体原因我也不知道  求大神指教

  • 相关阅读:
    专题三--1005
    专题三--1009
    专题三--1017
    背包九讲
    专题三--1003
    专题三--1004
    专题三--1015
    [洛谷P1220]关路灯
    [洛谷P1776]宝物筛选
    [USACO14JAN]Recording the Moolympics
  • 原文地址:https://www.cnblogs.com/happen-/p/5593341.html
Copyright © 2011-2022 走看看