您的位置:首页 > Web前端 > JavaScript

优化Javascript数据遍历

2016-01-26 16:51 393 查看

问题

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: