for循环与forEach等循环效率比较

2019-08-16  本文已影响0人  AAA前端
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <script>
    var testArrs = [],
        i = 0;
    while (i < 40000000) {
        testArrs.push(i);
        i++;
    }


    function testForeach(testArrs) {


        console.time('foreach');
        var newArrs = [];
        testArrs.forEach(function(i) {
            newArrs.push(i);
        });
        console.timeEnd('foreach');
    }


    function testMap(testArrs) {

        console.time('map');
        var newArrs = [];
        testArrs.map(function(i) {
            newArrs.push(i);
        });
        console.timeEnd('map');
    }

    function testFilter(testArrs) {

        console.time('filter');
        var newArrs = [];
        testArrs.filter(function(i) {
            newArrs.push(i);
        });
        console.timeEnd('filter');
    }


    function testNoDeclare(testArrs) {


        console.time('no declare');
        var newArrs = [];
        for (var i = 0; i < testArrs.length; i++) {
            newArrs.push(i);
        }
        console.timeEnd('no declare');
    }


    function testUseDeclare(testArrs) {


        console.time('use declare');
        var newArrs = [];
        for (var i = 0, len = testArrs.length; i < len; i++) {
            newArrs.push(i);
        }
        console.timeEnd('use declare');
    }


    // testForeach(testArrs); 
    // 2018.450927734375ms   1985.9140625ms      1993.22216796875ms   1873.22900390625ms
  
    //testNoDeclare(testArrs);
    //1044.173828125ms       1063.7919921875ms   1112.626220703125ms   1094.291259765625ms
    
    //testUseDeclare(testArrs); 
    //1107.72705078125ms    1071.324951171875ms  1079.0400390625ms     1142.242919921875ms
    
    //testMap(testArrs) 
    //2178.06494140625ms    2192.51220703125ms   2281.215087890625ms  2251.512939453125ms
    
    testFilter(testArrs) 
    //1827.462890625ms     1956.22412109375ms   1812.953857421875ms   1854.65869140625ms
    
    </script>
</body>

</html>
上一篇下一篇

猜你喜欢

热点阅读