Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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-如何将这个foreach循环转换为常规for循环?_Javascript_Loops_Foreach - Fatal编程技术网

Javascript-如何将这个foreach循环转换为常规for循环?

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

这个嵌套循环在我的应用程序中运行得非常慢,所以我尝试将它改为使用常规for循环,而不是foreach循环。我对find()部分有点困惑。有人能帮我转换这个嵌套循环,使它不使用任何foreach循环吗?谢谢

   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 });
        }
    }
}