美文网首页
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