美文网首页
for循环与forEach等循环效率比较

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

作者: AAA前端 | 来源:发表于2019-08-16 18:25 被阅读0次
    • 网上总是在鄙视for循环,太low拉,怎么怎么样。用forEach,filter,map。。。。。等等。
    • 但是for循环效率真的就低吗?(为了装逼而装逼)
    <!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>
    
    • 本次实验,分别注释函数,然后相同条件下刷新页面4次获取数据。

    • 先不论几种循环的作用、场景,单看循环的效率来说,其实for 循环效率还是蛮高的。(最少for循环和foreach循环比较来说,for循环效率更高

    相关文章

      网友评论

          本文标题:for循环与forEach等循环效率比较

          本文链接:https://www.haomeiwen.com/subject/mvgqsctx.html