优化Javascript数据遍历
Posted 力为
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优化Javascript数据遍历相关的知识,希望对你有一定的参考价值。
问题
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。
以上是关于优化Javascript数据遍历的主要内容,如果未能解决你的问题,请参考以下文章