for loop efficiency test

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

function testForeach (arr) {
    console.time("foreach");
    var newArr = [];
    arr.forEach(function (i) {
        newArr.push(i);
    });
    console.timeEnd("foreach");
}

function testNoDeclare (arr) {
    console.time("no declare");
    var newArr = [];
    for (var i = 0; i < arr.length; i++) {
        newArr.push(i);
    }
    console.timeEnd("no declare");
}

function testUseDeclare (arr) {
    console.time("use declare");
    var newArr = [];
    for (var i = 0, len = arr.length; i < len; i++) {
        newArr.push(i);
    }
    console.timeEnd("use declare");
}

// testForeach(testArrs); // 17.94066006783   18.810510252937  20.686124714573   18.864875889506  18.103756977537
//testUseDeclare(testArrs); // 5.110369837503  6.4151451151633  5.0288213826492  5.0288213826492   4.6754447449496
testNoDeclare(testArrs);  // 6.6054248431555  5.8171231129024  5.0288213826492  5.7355746580486   5.0831870192184

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325986749&siteId=291194637