Why outside loop ran 3 times

I am trying to understand nested loops but a little confused, so I created my own version of it to understand when we run it, it will run 3 times but the outside array has only 2 entries in it, so why does it run 3 times?

const arr = [
  [1,2,3],
  [4,5,6]
 ];

for(let i = 0; i < arr.length;i++){
  for(let s = 0; s <=arr.length; s++){
    console.log("Array "+ i +" is at location "+ arr[i])
    console.log(arr[i][s])
  }
}

function multiplyAll(arr) {
var product = 1;
// Only change code below this line

// Only change code above this line
return product;
}

// Modify values below to test your code
multiplyAll([[1,2],[3,4],[5,6,7]]);



**Your browser information:**

User Agent is: <code>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36</code>.

**Challenge:** Nesting For Loops

**Link to the challenge:**
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/nesting-for-loops

The outer loop it does loop 2 times. If you comment out both consoles from the inner loop and add a console above the inner loop you will see 2 iterations. Also in the inner loop I think u meant s < arr.length not s <= arr.length, that s why you see 3 logs, but those logs are from inner loop not outer.
What are you trying to understand about nested loops tho? The order in which both loops iterate or something else?

Look at the condition of your inner loop, is less or equal to arr.length or <= 2,
Thus running 3 times:

s=0
s=1
s=2
1 Like