Bird
Raised Fist0
Javascriptprogramming~20 mins

Return inside loops in Javascript - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Return Loop Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this code with return inside a for loop?

Look at the function below. What will testReturn() output when called?

Javascript
function testReturn() {
  for (let i = 0; i < 5; i++) {
    if (i === 2) {
      return i;
    }
  }
  return -1;
}
console.log(testReturn());
A4
B2
C0
D-1
Attempts:
2 left
💡 Hint

Remember that return immediately exits the function.

❓ Predict Output
intermediate
2:00remaining
What does this function return?

What will the function findFirstEven return?

Javascript
function findFirstEven(arr) {
  for (const num of arr) {
    if (num % 2 === 0) {
      return num;
    }
  }
  return null;
}
console.log(findFirstEven([1, 3, 5, 6, 8]));
A1
B3
Cnull
D6
Attempts:
2 left
💡 Hint

The function returns the first even number it finds.

❓ Predict Output
advanced
2:00remaining
What is the output of this nested loop with return?

What will this function output when called?

Javascript
function nestedReturn() {
  for (let i = 0; i < 3; i++) {
    for (let j = 0; j < 3; j++) {
      if (i + j === 3) {
        return i * j;
      }
    }
  }
  return -1;
}
console.log(nestedReturn());
A2
B3
C0
D-1
Attempts:
2 left
💡 Hint

Check when i + j === 3 happens first and what i * j is then.

❓ Predict Output
advanced
2:00remaining
What happens if return is inside a forEach loop?

What will this code output?

Javascript
function testForEach() {
  [1, 2, 3].forEach(num => {
    if (num === 2) {
      return num;
    }
  });
  return 'done';
}
console.log(testForEach());
A2
BTypeError
Cdone
Dundefined
Attempts:
2 left
💡 Hint

Remember that return inside forEach only exits the callback, not the outer function.

🧠 Conceptual
expert
3:00remaining
Why does return inside a loop behave differently in forEach vs for-of?

Consider these two functions:

function a(arr) {
  for (const x of arr) {
    if (x > 0) return x;
  }
  return null;
}

function b(arr) {
  arr.forEach(x => {
    if (x > 0) return x;
  });
  return null;
}

Why does a([1,2,3]) return 1 but b([1,2,3]) returns null?

ABecause return inside forEach only exits the callback, not the outer function
BBecause for-of loops do not support return statements
CBecause forEach automatically returns the first truthy value
DBecause return inside forEach throws an error
Attempts:
2 left
💡 Hint

Think about what return does inside a callback function vs a loop.

Practice

(1/5)
1. What happens when you use return inside a loop in a JavaScript function?
easy
A. The function stops immediately and returns the specified value.
B. Only the current loop iteration stops, but the function continues.
C. The loop skips the current iteration and continues with the next one.
D. The loop runs to completion before the function returns.

Solution

  1. Step 1: Understand the role of return in functions

    The return statement immediately exits the entire function and sends back a value.
  2. Step 2: Analyze return inside a loop

    When return is inside a loop, it does not just stop the loop but stops the whole function immediately.
  3. Final Answer:

    The function stops immediately and returns the specified value. -> Option A
  4. Quick Check:

    Return exits function, not just loop [OK]
Hint: Return inside loop exits whole function immediately [OK]
Common Mistakes:
  • Thinking return only stops the loop
  • Confusing return with continue or break
  • Assuming function runs after return
2. Which of the following is the correct syntax to return a value inside a for loop in a JavaScript function?
easy
A. for(let i=0; i<5 i++) return i;
B. return for(let i=0; i<5; i++) { i; }
C. for(let i=0; i<5; i++) { return i; }
D. for(let i=0; i<5; i++) { i return; }

Solution

  1. Step 1: Check valid return placement

    Return must be inside the loop block with correct syntax: return value;.
  2. Step 2: Analyze each option

    for(let i=0; i<5 i++) return i; has a syntax error (missing semicolon after i<5). for(let i=0; i<5; i++) { return i; } correctly places return i; inside the loop block. return for(let i=0; i<5; i++) { i; } and for(let i=0; i<5; i++) { i return; } have invalid syntax.
  3. Final Answer:

    for(let i=0; i<5; i++) { return i; } -> Option C
  4. Quick Check:

    Return inside braces is correct syntax [OK]
Hint: Return must be inside loop braces with value [OK]
Common Mistakes:
  • Placing return before for loop
  • Missing semicolon after return
  • Incorrect order of return and loop
3. What is the output of this code?
function findFirstEven(arr) {
  for (let num of arr) {
    if (num % 2 === 0) {
      return num;
    }
  }
  return null;
}
console.log(findFirstEven([1, 3, 5, 6, 8]));
medium
A. 6
B. 3
C. null
D. 1

Solution

  1. Step 1: Loop through array elements

    The function checks each number in the array: 1, 3, 5, 6, 8.
  2. Step 2: Return first even number found

    Numbers 1, 3, 5 are odd, so loop continues. At 6, condition num % 2 === 0 is true, so function returns 6 immediately.
  3. Final Answer:

    6 -> Option A
  4. Quick Check:

    First even number returned is 6 [OK]
Hint: Return stops at first even number found [OK]
Common Mistakes:
  • Returning first number instead of first even
  • Ignoring return stops function
  • Assuming loop checks all elements
4. Find the error in this function that tries to return the first negative number from an array:
function firstNegative(arr) {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] < 0) {
      break arr[i];
    }
  }
  return null;
}
medium
A. The loop condition should be i <= arr.length.
B. The loop should use return instead of break.
C. The function should return arr[i] after the loop.
D. Using break with a value is invalid syntax.

Solution

  1. Step 1: Understand break statement usage

    In JavaScript, break cannot have a value; it only exits the loop.
  2. Step 2: Identify correct way to return value

    To return a value and stop the function, use return arr[i]; inside the loop.
  3. Final Answer:

    Using break with a value is invalid syntax. -> Option D
  4. Quick Check:

    Break cannot return a value [OK]
Hint: Use return, not break, to exit function with value [OK]
Common Mistakes:
  • Using break with a value
  • Returning after loop instead of inside
  • Incorrect loop boundary conditions
5. You want to write a function that returns the first string longer than 5 characters from an array. Which code correctly uses return inside a loop to do this?
hard
A. function findLong(arr) { for (const str of arr) { if (str.length > 5) { break str; } } return null; }
B. function findLong(arr) { for (const str of arr) { if (str.length > 5) { return str; } } return null; }
C. function findLong(arr) { for (const str of arr) { if (str.length > 5) { continue str; } } return null; }
D. function findLong(arr) { for (const str of arr) { if (str.length > 5) { return; } } return null; }

Solution

  1. Step 1: Check correct use of return inside loop

    function findLong(arr) { for (const str of arr) { if (str.length > 5) { return str; } } return null; } returns the string immediately when condition is met, stopping the function.
  2. Step 2: Analyze other options for errors

    function findLong(arr) { for (const str of arr) { if (str.length > 5) { break str; } } return null; } uses invalid break with value. function findLong(arr) { for (const str of arr) { if (str.length > 5) { continue str; } } return null; } uses invalid continue with value. function findLong(arr) { for (const str of arr) { if (str.length > 5) { return; } } return null; } returns undefined instead of the string.
  3. Final Answer:

    function findLong(arr) { for (const str of arr) { if (str.length > 5) { return str; } } return null; } -> Option B
  4. Quick Check:

    Return with value inside loop stops function correctly [OK]
Hint: Return the value inside loop to stop function early [OK]
Common Mistakes:
  • Using break or continue with values
  • Returning without value
  • Returning after loop instead of inside
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard