Nesting For Loops not completely understood

Tell us what’s happening:
i understand that i is looping through the main array and j is looping through the nested arrays values.
but i have no idea what the last line " product *= arr[ i ] [ j ]; " does could someone explain please.

Your code so far

function multiplyAll(arr) {
  var product = 1;
  // Only change code below this line
  for (var i = 0; i < arr.length ; i++) {
    for (var j = 0; j < arr[i].length; j++) {
      product *=arr[i][j];
  // Only change code above this line
  return product;

// Modify values below to test your code

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36.

Link to the challenge:

so *= is an operator you learned earlier that multiplies the product variable with the term on the left arr[i][j]
So product will hold the result of a multiplication of the array value at [i][j] and itself.

In case you didn’t know what arr[i][j] means, think of a matrix of values (rows and columns). The first value accesses the row and the second the column to identify a unique cell in the matrix. This is essentially what that term does.

hope this helps

so we are multiplying the product variable to the values of the nested arrays right ?

yes, but also you are updating the product variable each time. so in the end, the product variable will hold the result of multiplying all the numbers together. (1 * 1 * 2 * 3 * 4 * 5 * 6 * 7)