2

Can we run a loop on a function in javascript, so that the function executes several times?

6 Answers 6

4

Yes, you can use a for loop and a while loop in javascript

for (i=0;i<=5;i++)
{
    MyFunc();
}

Where the variable 'i' is the number of times it needs to run

Sign up to request clarification or add additional context in comments.

1 Comment

@KP At the time I didnt have the code in there but the for and while are links to code on w3schools. I guess they didnt notice that so I added the code as well.
3

Learn basic JavaScript at W3Schools. It's well worth the effort - it won't take long.

1 Comment

Correction. It will take long.
0

if you tired of using standard like (IF, WHILE), here is the another way of doing.. :)

you can use setTimeOut and clearTimeOut to execute functions in a certain interval. If you want to execute an function for a specific number of times, you still can acheive it by incrementing index and clearTimeOut as soon as your index reaches to certain point.

setTimeout() - executes a code some time in the future

clearTimeout() - cancels the setTimeout()

example from w3schools

<html>
<head>
<script type="text/javascript">
var c=0;
var t;
var timer_is_on=0;

function timedCount()
{
document.getElementById('txt').value=c;
c=c+1;
t=setTimeout("timedCount()",1000);
}

function doTimer()
{
if (!timer_is_on)
  {
  timer_is_on=1;
  timedCount();
  }
}

function stopCount()
{
clearTimeout(t);
timer_is_on=0;
}
</script>
</head>

<body>
<form>
<input type="button" value="Start count!" onClick="doTimer()">
<input type="text" id="txt">
<input type="button" value="Stop count!" onClick="stopCount()">
</form>
</body>
</html>

Comments

0
for (var i=0;i<10;i++) //Loop 10 times
{
//Do something
}

Comments

0

Assuming your function is called f.

function f()
{
    ...
}

Here is a Javascript loop that will run your function 10 times.

for( int i = 0; i < 10; ++i )
{
    f();
}

Comments

0

Here is another way to iterate (functionaly) over a function, that is also optimised (using loop unrolling), on average it will be up to 16 times faster

(adapted from a functional lib of mine use as you wish)

function iterate( F, i0, i1, F0 )
{
    if ( i0 > i1 ) return F0;
    else if ( i0 === i1 ) { F(i0, F0, i0, i1); return F0; }
    var l=i1-i0+1, i, k, r=l&15, q=r&1;
    if ( q ) F(i0, F0, i0, i1);
    for (i=q; i<r; i+=2)
    { 
        k = i0+i;
        F(  k, F0, i0, i1);
        F(++k, F0, i0, i1);
    }
    for (i=r; i<l; i+=16)
    {
        k = i0+i;
        F(  k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
        F(++k, F0, i0, i1);
    }
    return F0;
}

use example:

function iterated(i, a, i0, i1)
{
     console.log([i, i0, i1]);
     a.push(i);
}
var a = iterate(iterated, 0, 9, []); // optionaly one can pass a parameter in the iterator
console.log(a);

output:

[0, 0, 9]
[1, 0, 9]
[2, 0, 9]
[3, 0, 9]
[4, 0, 9]
[5, 0, 9]
[6, 0, 9]
[7, 0, 9]
[8, 0, 9]
[9, 0, 9]

[0,1,2,3,4,5,6,7,8,9]

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.