zoukankan      html  css  js  c++  java
  • Javascript中遍历数组方法的性能对比

    Javascript中常见的遍历数组的方法

    1.for循环

    for(var i = 0; i < arr.length; i++) {
        // do something.        
    }
    

    2.for循环的改进版

    for(var i = 0, len = arr.length; i < len; i++) {
        // do something.
    }
    

    3.数组的forEach方法

    arr.forEach(function() {
        // do something.
    });
    

    4.数组的map方法

    arr.map(function() {
        // do something.
    });
    

    5.for(var ... in ... )

    for(var elem in arr) {
        // do something.    
    }
    

    构建检测性能的代码

    var arr = new Array();
    for(var i = 0; i < 1000000; i++) {
    	arr.push(i);
    }

    // 1 console.time();
    for(var i = 0; i < arr.length; i++) {
      // do something.
    } console.timeEnd();

    // 2 console.time(); for(var i = 0, len = arr.length; i < len; i++) {   // do something. } console.timeEnd();

    // 3 console.time(); arr.forEach(function() {
      // do something.
    }); console.timeEnd();

    // 4 console.time(); arr.map(function() {
      // do something.
    }); console.timeEnd();

    // 5 console.time(); for(var elem in arr) {
      // do something.
    } console.timeEnd();

    测试环境

     Windows10 Google Chrome 版本 60.0.3112.101(正式版本)

    结果(只选取一组比较有代表性的)

    default: 7.076904296875ms
    default: 5.582275390625ms
    default: 26.144775390625ms
    default: 577.5009765625ms
    default: 204.117919921875ms

    结论

    使用for循环的性能最高。

  • 相关阅读:
    开发工具IDEA
    了解java 的一角
    枚举类和Random
    字符串String和StringBuffer进行字符串拼接的发现
    java里的包装类
    String和StringBuffer的区别
    StringBuffer进行字符串拼接
    Hashmat
    第三单元作业总结
    第二单元作业总结
  • 原文地址:https://www.cnblogs.com/SyMind/p/7420050.html
Copyright © 2011-2022 走看看