从嵌套循环Javascript中的一个循环访问参数
我有3个循环从嵌套循环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.
$.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)