I will show you what the values of each variable are at various points in the function code. I will use your example of console.log(multiplyAll([[1,2],[3,4]]));
The function starts with product = 1
The final value of product is ‘11,23,4’ and is returned to the calling function where the console.log statement displays this string to the console.
That is the explanation of why you have the strange result. The next question is “how do I fix my code?”
First, since you are supposed to multiplying the elements of the arrays to get a total product, you should be using the *= operator instead of the +=.
Second, you need to remember arr is an array of arrays (arr contains other arrays), so you will need 2 for loops (an outer to iterate over the nested arrays of arr and an inner to iterate over the the elements inside each nested array.
Note: To reference a nested array’s element, you will use the syntax of arr[i][j] where i is the outer array index and j is the nested array index. For example, if I have the following array:
arr = [ [1, 2], [3, 4] ];
and I want to reference the 3 inside the 2nd nested array, I would write:
var number3 = arr; // 3 is assigned to the number3 variable
The first  represents the 2nd nested array and the second  represents the first element of the 2nd nested array.
See if you can now solve this challenge with this new insight into nested arrays.