[英]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 length
的for 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 loop
与JQuery each
, uncached for loop
和for loop
。
这里是classic for if
vs filter
的测试classic for if
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.