четверг, 20 июня 2013 г.

Альтернативный пример записи циклов For

for (
    var i=2, r=[0,1];
    i<15 || alert(r);
    r.push(r[i-1] + r[i-2]), i++
);
//alerts "0,1,1,2,3,5,8,13,21,34,55,89,144,233,377"

Такой способ записи цикла For позволяет гораздо проще разобраться в том, что здесь происходит.

Возможные варианты записи циклов For.

for (var i=0; i<arr.length; i++) {
    //do something to each member
}

arr.forEach(function(each)) {
    //do something to each
});

for (
    var i=2, r=[0,1];
    i<15 || alert(r);
    r.push(r[i-1] + r[i-2]), i++
);
//alerts "0,1,1,2,3,5,8,13,21,34,55,89,144,233,377"

initialCode();
while(iteratingCondition()) {
    repeatingCode();
    repeatingExpression();
}

for (var i=0; i<arr.length; i++) {
    var member = arr[i];
    doSomething(member);
}

for (var i=0, l=arr.length; i<l; i++) {
    var member = arr[i];
    doSomething(member);
}

for (var i=0, each; each = arr[i]; i++) {
    doSomething(each);
}

function sum(arr) {
    for (var i=arr.length, r=0; i--; r += arr[i]);
    return r;
}

sum([3,5,0,-2,7,8]); //21

function shoutOutSum(arr, x) {
    for (var i=arr.length, r=0; i-- || alert(r); r += arr[i]);
}

shoutOutSum([3,5,0,-2,7,8]); //alerts "21"

function myFunction(arr) {
    var i;
    //...
    for (i=0; i < arr.length; i++) {
        //...
    }
    //...
}

var i = 0;
for (
    console.log('start:',+new Date);
    i<1000 || console.log('finish:',+new Date);
    i++
);

Комментариев нет:

Отправить комментарий