Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从嵌套循环Javascript中的一个循环访问参数_Javascript - Fatal编程技术网

从嵌套循环Javascript中的一个循环访问参数

从嵌套循环Javascript中的一个循环访问参数,javascript,Javascript,我有3个循环 $.each(results.doc, function(index, element){ for(var i=0; i < self.options.maxMatches; i++){ var RealCategory = this.data[0]['realcategories'][i]; var realcategoryName = RealCategory.

我有3个循环

$.each(results.doc, function(index, element){
                for(var i=0; i < self.options.maxMatches; i++){
                    var RealCategory = this.data[0]['realcategories'][i];
                    var realcategoryName = RealCategory.name;
                    for(var j = 0; j< RealCategory.tournaments.length; j++){
                        var tournamentName = RealCategory.tournaments[j].name
                        self.append('<li>' + realcategoryName+' / '+i+' - '+tournamentName+' / '+j+' </li>');
                    }
                };
            });
$。每个(results.doc、函数(索引、元素){
对于(var i=0;i'+realcategoryName+'/'+i+'-'+tournamentName+'/'+j+'');
}
};
});

self.options.maxMatches中,我决定用HTML显示多少结果。比如说
self.options.maxMatches=10
。当
RealCategory.tournaments.length>0
时出现问题。然后我从第三和第二个循环得到结果。如果第三个for循环得到2个结果,我会得到我的HTML10+2结果,但我不想要的只是10个结果

试试这个,这是一个快速解决方案。我在内部循环中增加了ur变量“I”(尽管这段代码可以用更好的方式编写)

$。每个(results.doc、函数(索引、元素){
对于(var i=0;i'+realcategoryName+'/'+i+'-'+tournamentName+'/'+j+'');
}
};
});

试试这个,这是一个快速解决方案。我在内部循环中增加了ur变量“I”(尽管这段代码可以用更好的方式编写)

$。每个(results.doc、函数(索引、元素){
对于(var i=0;i'+realcategoryName+'/'+i+'-'+tournamentName+'/'+j+'');
}
};
});

如果您最多需要
maxMatches
个数的
  • s(或
    锦标赛
    ),那么您需要从索引器中保留一个单独的计数器,并基于此退出循环

    var limit = self.options.maxMatches;
    $.each(results.doc, function () {
        // ...
        for (var i = 0; i < categories.length; i++) {
            // ...
            for (var j = 0; j < RealCategory.tournaments.length; j++) {
                // ...
    
                limit--;
                if (limit <= 0) {
                    // exit iterator `function`, interrupting both `for` loops
                    // `false` to instruct jQuery to not continue looping
                    return false;
                }
            }
        }
    });
    

    如果您最多需要
    maxMatches
    个数的
  • s(或
    tournames
    ),那么您需要在索引器中保留一个单独的计数器,并基于此退出循环

    var limit = self.options.maxMatches;
    $.each(results.doc, function () {
        // ...
        for (var i = 0; i < categories.length; i++) {
            // ...
            for (var j = 0; j < RealCategory.tournaments.length; j++) {
                // ...
    
                limit--;
                if (limit <= 0) {
                    // exit iterator `function`, interrupting both `for` loops
                    // `false` to instruct jQuery to not continue looping
                    return false;
                }
            }
        }
    });
    

    我只能看到两个
    for
    循环。你把
    每个
    都算作第三个了吗?是的,我的意思是每个都是一个循环和两个for循环,如果写得不明白,对不起。@k-nut,
    $。每个
    本质上都是一个循环包装器。它通过第一个参数中的元素循环,并对每个元素执行函数,因此从技术上讲它是一个循环。你把
    每个
    都算作第三个了吗?是的,我的意思是每个都是一个循环和两个for循环,如果写得不明白,对不起。@k-nut,
    $。每个
    本质上都是一个循环包装器。它通过第一个参数中的元素进行循环,并对每个元素执行函数,因此从技术上讲,它是一个循环。我已经尝试过了,但不起作用。如果我输入10个结果,我得到7个。你能告诉我怎样才能写得更好吗?我想学习写更好的代码。参考上面@jonathan Lonowski的解决方案。。您可以使用这样的限制标志。您还可以调整结果的json/数组结构。从代码上看,它可能需要一些重组。谢谢@Taran J,我相信它可能需要很多重组。我还在学习编程,这就是为什么我感谢你们给我的每一个提示或解决方案。我已经尝试过了,但没有工作。如果我输入10个结果,我得到7个。你能告诉我怎样才能写得更好吗?我想学习写更好的代码。参考上面@jonathan Lonowski的解决方案。。您可以使用这样的限制标志。您还可以调整结果的json/数组结构。从代码上看,它可能需要一些重组。谢谢@Taran J,我相信它可能需要很多重组。我仍在学习编程,这就是为什么我感谢你们给我的每一个提示或解决方案。非常感谢你们的解释,并告诉我如何做到这一点。唯一的问题是它应该是for(var j=0;ji               | 0 | 1 | 2 | 3 | 4 | (e.g. maxMatches = 5)
    tournaments (A) | 3 | 0 | 1 | 2 | 1 | (total = 7)
    tournaments (B) | 0 | 1 | 1 | 0 | 0 | (total = 2)