繁体   English   中英

如何用&替换过滤对象

[英]How do I replace filtering an object with each & if

目前,我的代码可以运行,但是非常慢。 问题在于,在我要遍历访问的每一项并基于if显示输出时,要过滤对象访问。

使用visits.filter会更快吗? 如是。 如何调整我的功能? 谢谢

chrome.history.search(options, function(history) {
    $.each(history, function(i, item) {
        var itemTime = new Date(item.lastVisitTime)

        if (item.visitCount > 0) {
            $.each(history, function(i, item) {
                chrome.history.getVisits({ url: item.url }, function(visits) {

                    $.each(visits, function(i, visit) {

                        if (visit.visitTime > startTime && visit.id == item.id) {
                            var visiTime = new Date(visit.visitTime)
                            //console.log(visit)
                            console.log(visiTime + ' ' + item.url)
                        }

                    })
                })
            })
        } else {
            console.debug(itemTime + ' ' + item.url)
        }
    })
})

如果您想加快功能的执行速度,建议您使用for loop with pre-calculated lengthfor loop with pre-calculated length 平均而言 ,这是更快的循环。

var len = a.length, i=0;
for(i; i < len ; i++){
    if (i>0)
        e = a[i];
}

试验

您可以在这里这里找到一些测试,这些测试分别显示了pre-calculated for loopJQuery eachuncached for loopfor loop

这里classic for if vs filter的测试classic for if

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM