`

三种javascript数组搜索的效率对比

 
阅读更多
http://my.oschina.net/ZaneYoung/blog/389873
结论:内置方法是最快的.
//构造一个数组
var arr=[];
for(var i=0;i<=1000000;i++){
    arr.push('abcdefghigk'+i);
}
var v='abcdefghigk1000000';//需要比较的值就是最后一个
console.log('for in ');//for in方式查询
console.time('arr');
var find =false;
for(var i in arr){
    if(arr[i]===v){
        find=true;
        break;
    }
}
console.log(find);
console.timeEnd('arr');
console.log('for i++');//for i++方式查询
console.time('arr');
var find =false;
for(var i=0,len=arr.length;i<len;i++){
    if(arr[i]===v){
        find=true;
        break;
    }
}
console.log(find);
console.timeEnd('arr');
console.log('string');//join方式查询
console.time('arr');
console.log((','+arr.join(',')+',').indexOf(','+v+','));
console.timeEnd('arr');


测试结果:
for in
VM236:17 true
VM236:18 arr: 1153.680ms
VM236:19 for i++
VM236:28 true
VM236:29 arr: 1246.048ms
VM236:30 string
VM236:32 17888890
VM236:33 arr: 149.924ms
分享到:
评论

相关推荐

    javascript数组去重小结

    准备下面试,开始回顾复习JavaScript相关的知识,昨天下午想到了数组去重的相关方法,干脆整理出几篇JavaScript算法文章,以备后用,此系列文章不定篇数,不定时间,想到哪写到哪,不保证正确性,不保证高效率,只是...

    JS常用的几种数组遍历方式以及性能分析对比实例详解

    主要介绍了JS常用的几种数组遍历方式以及性能分析对比,结合实例形式详细分析了javascript针对数组遍历的几种常见使用方法及执行效率对比,具有一定参考借鉴价值,需要的朋友可以参考下

    Javascript 各浏览器的 Javascript 效率对比

    从“译言”上的一篇文章据悉各浏览器 Javascript 的对比。我个人作为一名“准”的 Javascript 开发者,对此事自然比较的关注。SunSpider 的测试面我还是保持对其信任的态度的,正如原文所说的“它是一组被精心...

    JavaScript王者归来part.1 总数2

     15.9 userData与cookie的对比   15.10 userData示例--一个利用userData实现客户端保存表单数据的例子   15.11 总结   第四部分 数据交互  第16章 同步和异步  16.1 什么是同步和异步   16.2 超时设定和...

    Javascript中八种遍历方法的执行速度深度对比

    然而遍历却不是一件简单的事, 优秀的程序员知道怎么去选择合适的遍历方法, 优化遍历效率. 本篇将带你走进JavaScript遍历的世界, 享受分析JS循环的快感. 本篇所有代码都可以直接运行, 希望您通读本篇后, 不止是浏览,...

    JavaScript组合拼接字符串的效率对比测试

    比如写脚本控件时控制整个控件的外观的HTML标签输出,比如AJAX里得到服务器端的回传值后动态分析创建HTML标签时,不过这里我就不讨论拼接字符串的具体应用了,我只是想在这里讨论一下拼接的效率。 字符串的拼接在...

    JavaScript判断是否为数组的3种方法及效率比较

    今天针对不同的数组判定方式在chrome上做了一个效率的对比,结果如下: 其代码如下:   var ret; var o = [1,2,3]; var toStr = {}.toString; var array = {}; array[[object Array]] = array; console.log...

    Highcharts-Gantt-8.1.2.zip

    Highstock 的数据是 JavaScript 数组或对象,这些数据可以是本地的配置对象,独立的数据文件(JSON、CVS)甚至是不同的网站上定义。另外,这些数据可以用任何形式处理好并加载到 Highstock 中。

    Highcharts-Stock-8.1.2.zip

    Highstock 的数据是 JavaScript 数组或对象,这些数据可以是本地的配置对象,独立的数据文件(JSON、CVS)甚至是不同的网站上定义。另外,这些数据可以用任何形式处理好并加载到 Highstock 中。

    jquery-1.1.3 效率提高800%

    选择器速度提升 选择器的速度大幅度提高了,下表为jQuery1.1.2和1.1.3的选择器速度对比,提高了8倍多 Browser jQuery 1.1.2 jQuery 1.1.3 % Improvement IE 6 4890ms 661ms 740% Firefox 2 5629ms 567...

    400电话办理选号系统

    -js ---javascript脚本目录 -|jquery.js ---jquery脚本文件 -|main.js ---主程序脚本 |memcache.class.php ---memcache数据库缓存加速类 |next_run.php ---暂无具体功能 -r ---URL重定向目录 -|httpd.ini ---...

    Beetl模板引擎-其他

    关于性能:通过与主流模板引擎Freemarker,Velocity以及JSP对比,Beetl均远高于前面三个,这是因为宏观上,通过了优化的渲染引擎,IO的二进制输出,字节码属性访问增强,微观上,通过一维数组保存上下文,合并静态...

Global site tag (gtag.js) - Google Analytics