Preview:
//Remember that, for the inner loop, we need to check the .length of arr[i] since arr[i] is one of the sub-arrays we looked at earlier.

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

  //Outer Loop
  for (let i = 0; i < arr.length; i++){
  //Inner Loop
    
  for (let j = 0; j < arr[i].length; j++){
    
  //Finally, multiply product by every element in each of the sub-arrays: 
  product *= arr[i][j]
  }
  }
  // Only change code above this line
  console.log(product)
  return product;
}

multiplyAll([[1, 2], [3, 4], [5, 6, 7]]);


//Closer look
//The overall view:
//Sub-array 0: 1,2
//Element 0: 1
//Element 1: 2
//Sub-array 1: 3,4
//Element 0: 3
//Element 1: 4
//Sub-array 2: 5,6,7
//Element 0: 5
//Element 1: 6
//Element 2: 7


//The first iteration of i grabs the first sub-array, [1, 2]. Then the first iteration of j goes through each element in that sub-array

// i is 0
arr[0] // [1, 2];

// j is 0
arr[0][0] // 1
// j is 1
arr[0][1] // 2

-----

// i is 1
arr[1] // [3, 4]

// j is 0
arr[1][0] // 3
// j is 1
arr[1][1] // 4

...


//To better understand arr[i][j] we can replace "arr[i]"" by "subarray"
function multiplyAll(arr) {
  let product = 1;
  // Only change code below this line
  for (let i = 0; i < arr.length; i++) {
    const subArray = arr[i];
    for (let j = 0; j < subArray.length; j++) {
      product *= subArray[j];
    }
  }
  // Only change code above this line
  return product;
}

multiplyAll([[1,2],[3,4],[5,6,7]]);

downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter