Javascript-如何将这个foreach循环转换为常规for循环?
这个嵌套循环在我的应用程序中运行得非常慢,所以我尝试将它改为使用常规for循环,而不是foreach循环。我对find()部分有点困惑。有人能帮我转换这个嵌套循环,使它不使用任何foreach循环吗?谢谢Javascript-如何将这个foreach循环转换为常规for循环?,javascript,loops,foreach,Javascript,Loops,Foreach,这个嵌套循环在我的应用程序中运行得非常慢,所以我尝试将它改为使用常规for循环,而不是foreach循环。我对find()部分有点困惑。有人能帮我转换这个嵌套循环,使它不使用任何foreach循环吗?谢谢 var filters = []; if (selectionTagFilters.length > 0) { for (var i = 0; i < selectionTagFilters.length; i++) { fil
var filters = [];
if (selectionTagFilters.length > 0) {
for (var i = 0; i < selectionTagFilters.length; i++) {
filterTree.forEach(function find(tag) {
if (tag.tagCategoryId == selectionTagFilters[i].tag.tagCategoryId) {
tag.tags.forEach(function find(tag) {
if (tag.tagId == selectionTagFilters[i].tag.tagId) {
filters.push({ tagHeader: tag.tagHeader, tagId: tag.tagId, tagCategoryId: tag.tagCategoryId });
}
});
}
});
}
}
var过滤器=[];
如果(selectionTagFilters.length>0){
对于(变量i=0;i
var过滤器=[],
selectionTagFilterItem=null,
filterTreeItem=null,
tagItem=null;
对于(变量i=0,ii=selectionTagFilters.length;i
forEach的循环是forEach
这一事实并没有减缓这一速度。更改为for
并不会使它更快地成为一个诚实的人。。。。这个函数名为find并不影响任何事情,很多网站都说foreach循环运行得比较慢。下面是一个例子:
var filters = [],
selectionTagFilterItem = null,
filterTreeItem = null,
tagItem = null;
for(var i = 0, ii = selectionTagFilters.length; i < ii; i++) {
selectionTagFilterItem = selectionTagFilters[i];
for(var fti, ftii = filterTree.length; fti < ftii; fti++) {
filterTreeItem = filterTree[fti];
if (filterTreeItem.tagCategoryId != selectionTagFilterItem.tag.tagCategoryId) continue;
for(var ti = 0, tii = filterTreeItem.tags.length; ti < tii; ti++) {
tagItem = filterTreeItem.tags[ti];
if (tagItem.tagId != selectionTagFilterItem.tag.tagId) continue;
filters.push({ tagHeader: tagItem.tagHeader, tagId: tagItem.tagId, tagCategoryId: tagItem.tagCategoryId });
}
}
}