如何用每个&更换过滤对象?如果

时间:2017-04-10 04:22:02

标签: javascript jquery performance

目前我的代码有效,但速度很慢。问题在于,在我访问每个访问项目并根据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)
        }
    })
})

1 个答案:

答案 0 :(得分:0)

如果您想加快功能,我建议您使用for loop with pre-calculated length平均已知更快的循环。

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

<强> TESTS

您可以找到herehere部分测试,其中显示pre-calculated for loopJQuery eachuncached for loopfor loop

Here测试classic for if vs filter