for、for..in、forEach、$.each等循環性能測試

 var num = 10000000,arr = [];

        for(i=0;i<num;i++){
            arr[i] = i+2;
        }

        //1) 使用 for 循環
        function test1() {
            var d1 = new Date();
            var sum = 0;
            for (var i = 0; i < arr.length; i++) {
                sum += arr[i]
            }
            var d2 = new Date();
            var x = d2 - d1;
            console.log("for計算用時:" + x);
        }
        //1) 使用 for 循環
        function test2() {
            var d1 = new Date();
            var sum = 0;
            for (var i = 0,len=arr.length; i < len; i++) {
                sum += arr[i]
            }
            var d2 = new Date();
            var x = d2 - d1;
            console.log("for循環優化計算用時:" + x);
        }
        //2) 使用 for..in 循環
        function test11() {
            var d1 = new Date();
            var sum = 0;
            for (var i in arr) {
                sum += arr[i]
            }
            var d2 = new Date();
            var x = d2 - d1;
            console.log("for..in計算用時:" + x);
        }
        //3) 使用 forEach 循環
        function test3() {
            var d1 = new Date();
            var sum = 0;
            arr.forEach(function (n) {
                sum += n;
            })
            var d2 = new Date();
            var x = d2 - d1;
            console.log("forEach計算用時:" + x);
        }
        //4)$.each循環
        function test4() {
            var d1 = new Date();
            var sum = 0;
            $.each(arr,function (i,n) {
                sum += n;
            })
            var d2 = new Date();
            var x = d2 - d1;
            console.log("$.each計算用時:" + x);
        }

        test1();test11();test2();test3();test4();

        
//        for計算用時:15
//        for..in計算用時:1338
//        for循環優化計算用時:12
//        forEach計算用時:330
//        $.each計算用時:360
相關文章
相關標籤/搜索