两层遍历的递归写法


``` var arr1 = ["one","two","three"]; var arr2 = ["LD","HTY"];
        test(arr1,arr2);

        function test(themeType,oidType){
             //应用与人员对比的最大次数
            var maxNum = themeType.length * oidType.length;
            //从下标为0的应用开始对比,进行递增
            var themeNum = 0;
            //从下标为0的人员开始递增(如果当前应用与所有人员对比完毕,则与递增后的应用进行对比)
            var oidStart = 0;
            empower(maxNum, themeType[themeNum], oidType[oidStart]);

            function empower(count, theme, oid) {
                if (count <= 0) {
                    return;
                } else {
                    console.log(count,theme,oid)
                    //如果本次应用与所需要的人员对比结束,则拿到一个应用进行对比
                    if (oidStart >= oidType.length-1) {
                        themeNum++;
                        oidStart = 0;  //与本次对比应用结束,初始化人员对比
                    //如果未与人员对比完毕,则与下一个人员进行对比
                    }else{
                        oidStart++;   
                    }
                    empower(count - 1, themeType[themeNum], oidType[oidStart]);
                }

            }
        }
原文地址:https://www.cnblogs.com/liu-di/p/10437373.html