优化Javascript数据遍历
2016-01-26 16:51
393 查看
问题
M是一个对象的集合,没个对象拥有唯一的字符串类型的IdN是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数据遍历
- 优化Javascript数据遍历
- jsoncpp安装
- js正则表达式验证大全
- JavaScript提高:005:ASP.NET使用easyUI TABS标签显示问题
- 内核级研究-arm926ejs内核如何控制TCM、Cache、MMU等
- js 节点 document html css 表单节点操作
- JS上传多种类型参数
- 详解javascript new的运行机制
- JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解
- Flowchart.js首页、文档和下载 - 流程图插件 - 开源中国社区
- HTML,CSS和JavaScript对比(一)
- JavaScript变量作用域
- 重温JSP学习笔记--三大指令九大内置对象
- JavaScript学习总结——转
- JSP的9个内置对象
- 基于JavaScript实现瀑布流布局(二)
- AngualrJS中制作一个有关菜单的Directive
- Extjs 4.2 panel 添加 click 事件及右键菜单
- Js数组里删除指定的元素(不是指定的位置)