Nesting For Loops – why arr[i][j]

Tell us what’s happening:
@KBPsystem777
I figured the solution out and saw your posts on this topic, but can someone please explain to me why product *= arr[i][j]; work? specifically the arr[i][j] with [i][j] stacked next to each other… was there a lesson I forgot/missed? I understand *= is to multiply all of it… just the [i][j] next together is confusing to me… thanks

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
multiplyAll([[1,2],[3,4],[5,6,7]]);

Your browser information:

Your Browser User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36.

Link to the challenge:

ahhhh thank you so much @camperextraordinaire !

No actually I already pass that challenge, it was within the Nesting for Loops challenge but it came up then. So you actually reminded me by pointing me to that challenge… so thanks again! :slight_smile:

Additional question to all if anyone wouldn’t mind to take the time to explain it to me:

I understand that:

product += 5; \ will add 5 to product and return the sum of it or
product *= 5; \ will multiply product by 5 and return the result, but

can someone explain why calling the sub array [j] within array [i] in this instance, as the way it is coded…

for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr[i].length; j++) {
product *= arr[i][j];

will multiply them all together? Just trying to understand the logic behind the code.

Thanks in advance.

1 Like

oh dang @camperextraordinaire thank you!!! I didn’t know such a tool existed… I’ll be using this a lot now !!