javascript - 为什么这些 for 循环不起作用?

标签 javascript

我有 5 个嵌套的 for 循环:

let tags = Tags.find().fetch();
let cases = {};

for (i = 0; i < tags.length; i++) { 

    cases.problem = {};
    cases.problem.one = {};
    cases.problem.one.name      = tags[i].name;
    cases.problem.one.value     = 50;

    cases.solution = {};

    cases.solution.one      = tags[i].types.slice(0,5);

    for (j = i + 1; j < (tags.length - 1); j++) { 

        cases.problem.two = {};
        cases.problem.two.name      = tags[j].name;
        cases.problem.two.value     = 30;

        cases.solution.two      = tags[j].types.slice(0,3);

        for (k = j + 1; k < (tags.length - 2); k++) {   


            cases.problem.three = {};
            cases.problem.three.name    = tags[k].name;
            cases.problem.three.value   = 20;

            cases.solution.three    = tags[k].types.slice(0,2);

            for (l = k + 1; l < (tags.length - 3); l++) {   

                cases.problem.four = {};
                cases.problem.four.name     = tags[l].name;
                cases.problem.four.value    = 0;

                cases.solution.four     = [""];

                for (n = l + 1; n <= (tags.length - 4); n++) { 

                    cases.problem.five = {}
                    cases.problem.five.name     = tags[n].name;
                    cases.problem.five.value    = 0;

                    cases.solution.five     = [""];

                    console.log(cases)

                    // Cases.insert(cases)

                }
            }   
        }
    }
}

他们在 3er 之前工作正常,我不知道哪里出了问题。

注意:Tags.length 始终为 5。

注意 2:我正在尝试对存储在标签数组中的对象进行所有可能的组合

注意 3: 标签是具有以下形式的对象: 标签:{ 名称:字符串 类型:[数组]

我总是有 5 个标签,所以在上面的代码中 Tags.find().fetch() 总是返回 5 个对象。好的,我想要/需要的是:

tags[0] tags[1] tags[2] tags[3] tags[4]
tags[0] tags[1] tags[2] tags[4] tags[3]
....

类似的东西

最佳答案

第 4 和第 5 个嵌套循环将永远不会执行,因为它们的条件无法满足。在 i = 0 处进行第一次迭代:

一级循环 -> for(i = 0; i < 5; i++)
二级循环 -> for(j = 1; j < 4; j++)
三级循环 -> for(k = 2; k < 3; k++)
4 级循环 -> for(l = 3; l < 2; l++)
5 级循环 -> for(n = 4; n <= 1; n++)

如您所见,从第一次迭代开始,最后两个循环将不会运行。

关于javascript - 为什么这些 for 循环不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33261105/

相关文章:

javascript - 表格单元格元素中的 Angular 嵌入

javascript - 在 vue.js 中访问 v-for 列表项对象数据

javascript - AngularJS/UI Bootstrap - 删除时淡出警报

javascript - useContext 不更新 React 中的状态更改

javascript - 函数在函数表达式中不可见,如何解决?

javascript - jQuery 数组排序仅适用于 DOM 中的第一个表元素

javascript - Accordion 展开/折叠全部无需 jQuery

javascript - 如何在nodeJS中执行cmd命令?

javascript - 仅触发一次点击事件

javascript - Twitter 网络意图 URL 缩短器