GitbookIO / javascript

GitBook teaching programming basics with Javascript
https://gitbook.gitbook.io/learn-javascript/
Apache License 2.0
3.56k stars 1.01k forks source link

JS Loops #146

Closed dree-max closed 1 year ago

dree-max commented 2 years ago

screenbud-cbd1390c-fb74-4cfd-9abf-4f5360820a58 while learning JS, i ran into a small issue and im stuck . Any help rendered would be appreciated

sabhinav10 commented 2 years ago

screenbud-cbd1390c-fb74-4cfd-9abf-4f5360820a58 while learning JS, i ran into a small issue and im stuck . Any help rendered would be appreciated

Hi ,In the for loop ,both initial and final value of i is inclusive: for(let i=5;i<=10;i++) due to which loop runs 6 times i think that might be the issue .Hope it helps.

dree-max commented 2 years ago

Hello, it still doesn't give me the required answer Thanks for the help though

karthik123karthik commented 2 years ago

try running i from 0 to n inside loop . I think it might work.

dree-max commented 2 years ago

still didnt work for me

ghost commented 2 years ago

Hi @dree-max, there's a super easy approach without loops if you want to... i.e. using .repeat().

You can simply solve this in 4 lines of code:

function scream(n) {
    let str = 'a'.repeat(n)
    console.log(str)
}

scream(10) 

Lemme know if you have any questions. Cheers :)

dree-max commented 2 years ago

Unfortunately this one has to have loops because it's what's been examined in this particular exercise! Thank you for the other option though I tried it out and it works just fine

VaibhavArora19 commented 2 years ago

You can do it like this!

function scream(n)
{
    let str = '';
    while(n--)
    {
        str +='a';
    }
    console.log(str);
}

scream(10);
ghost commented 2 years ago

Hello @ dree-max, you have already figured that out but still useful to give my two cents.

In Pseudocode, that problem would be solved like this:

 n = 5
 i = 0
 from i to n:
     //  do

In JavaScript, that would be solved like this:

function scream(n) {
     let str = "";
     for (let i = 0; i<n; i++) 
          str = str + 'a';
     return str;
}

console.log(scream(2)); // aa
console.log(scream(5)); // aaaaa
abhirajn commented 2 years ago

@dree-max run loop as i=0 ; i < n; i++ this have to work

SiyonaL commented 2 years ago

function scream(n) { let str = ""; for (let i = 0; i<n; i++) str = str + 'a'; return str; }

console.log(scream(3)); // aaa console.log(scream(5)); // aaaaa

//This will solve the issue. Happy to help :)

Anshkaran7 commented 1 year ago

function scream(n) { return Array(n+1).join('a'); }

console.log(scream(3)); // aaa console.log(scream(5)); // aaaaa

Hey @dree-max , Easy approach without loops if you want to..(using an Array and then join it with 'a' as the separator.)

vishal00923 commented 1 year ago

// simple solution with for loop

`function scream(n) { let str = ''; for (let i = 0; i < n; ++i) { str += 'a'; }

return str; }

console.log(scream(5)); console.log(scream(10));`