在一个追求速度的应用上工作,数组很大,且其中包含的对象也很多。
我尝试过grep
和 filter
,但没有看到显著的速度差异,变化范围为+-5ms,我还尝试了通过循环数组并使用.splice(i,1);
(结果相同)。
我的机器速度很快,如果它在快速的机器上始终需要大约相同的时间,那么这是否意味着它在旧的机器上需要大约相同的时间?
有没有更快的方法从数组中删除对象?
想要做的事情像这样:
var filterTime = performance.now();
doStuff1();
var filterTimeEnd = performance.now();
var grepTime = performance.now();
doStuff2();
var grepTimeEnd = performance.now();
然后将差异存储在cookie中,所以下次加载或刷新页面时,可以执行最有效的方式:从数组中移除对象。
更新
过滤器实验片段
companyMasters = companyMasters.filter(function (obj) {
return obj.masterId != CompanyObj.masterId;
});