优化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。


转载于:https://www.cnblogs.com/aiwz/p/6333100.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值