首页 > 两个函数,就for循环内有语句差异,能简单合并掉么?

两个函数,就for循环内有语句差异,能简单合并掉么?

原谅我这个毫无主题的标题。。因为确实不知道如何描述。
有下面两个函数,testParsetestGetTime,除了for循环内一句定义语句外,其他函数体内容完全一样,想问下可以把这两个函数合并成一个么?
主要是为了测试两种Date()方法的效率,所以times值会变得很大

    function testParse(times){
    var startTime=new Date();
    for (var i = 0; i < times; i++) {
        var d=new Date();
        var formatDate=Date.parse(d);//这一行填写具体的格式化函数
    };
    var endTime=new Date();
    var gapTime=endTime-startTime;
    console.log('一共耗时:'+gapTime+'ms');
  }

    function testGetTime(times){
    var startTime=new Date();
    for (var i = 0; i < times; i++) {
        var d=new Date();
        var formatDate=d.getTime();//这一行填写具体的格式化函数
    };
    var endTime=new Date();
    var gapTime=endTime-startTime;
    console.log('一共耗时:'+gapTime+'ms');
  }

一开始我的思路是swtichfor中,但是感觉对函数效率影响比较大(因为当for循环次数比较大的时候,感觉基本上时间都是switch用掉的,对结果污染比较大。

或者就是swtich放到for外面,但是这样的话for循环体的代码就不能重用,所以想问下有没有别的方法?


function testFN(times,ready){
        var startTime=new Date();
        for (var i = 0; i < times; i++) {
            if(ready){
                var d=new Date();
                var formatDate=Date.parse(d);//这一行填写具体的格式化函数
            }else{
                var d=new Date();
                var formatDate=d.getTime();//这一行填写具体的格式化函数
            }
        };
        var endTime=new Date();
        var gapTime=endTime-startTime;
        console.log('一共耗时:'+gapTime+'ms');
    }
    testFN(10000,true);
    testFN(10000,false);

javascriptfunction test(times,func){
    var startTime=new Date();
    for (var i = 0; i < times; i++) {
        func();
    };
    var endTime=new Date();
    var gapTime=endTime-startTime;
    console.log('一共耗时:'+gapTime+'ms');
}

function t_parse() {
    var d=new Date();
    var formatDate=Date.parse(d);
}

function t_getTime() {
    var d=new Date();
    var formatDate=d.getTime();
}

test(10000,t_parse);
test(10000,t_getTime);

试了下拆成这样测试的结果跟你给出的函数测试结果差不多。
你还可以测点别的想测的……

【热门文章】
【热门文章】