Daily Coding Day Two

Round two of daily coding challenges. This one was marked as hard in the email, and I am sure that there is a way to do this by extending reduce or perhaps filter to encompass the for loop, but I am interested more in getting a solution to these exercises rather than the solution. Day two here it is:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Given an array of integers, return a new array such that each element 
// at index i of the new array is the product of all the numbers in
// the original array except the one at i.

// For example, if our input was [1, 2, 3, 4, 5], the expected output
// would be [120, 60, 40, 30, 24]. If our input was [3, 2, 1],
// the expected output would be [2, 3, 6]

function productOfNumbers(numbers)
{
let toReturn = []

for (let i = 0; i < numbers.length; i++)
{
// Grab the element
const n = numbers[i];

// Add the multipled values to the final array
toReturn.push(numbers.filter(x => x != n).reduce((a,b) => a*b, 1))
}

console.log(toReturn)
return toReturn
}