优化Javascript数据遍历

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

问题

M是一个对象的集合,没个对象拥有唯一的字符串类型的Id

N是Id的集合。

从M中过滤掉Id不在N中的对象。

假如M有50w个数据,N中可能是0~50w任意的数据。


方案1

使用数组保存Id的集合。

这样就有两种方式遍历

1.1 

N = [id, ...];


for(var m in M)

   for(var n in N){

 .....

}

1.2

for(var m in M)

    if(N.indexOf(m.id) > -1){

}

方案2

使用“dict/map”来保存Id的集合

N = {{id:0}, ....};


2.1

//遍历

for( var m in M)

   if(n[m.id] !== undefined){

....

}


结论

dict与array PK,结果显而易见,速度2.1 > 1.2 > 1.1。


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:java简单的万年历

下一篇:LeetCode Reverse Linked List II