Taken from DailyCodingProblem:
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 ati
.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]
.
This is the answer I came up with:
// typescript
const solution = (numbers: Array<number>): Array<number> => {
let result = []
for (let num of numbers) {
let tempStart = numbers.slice(0, num)
tempStart.pop()
let tempEnd = numbers.slice(num, numbers.length)
let tempArray = tempStart.concat(tempEnd)
let tempResult = tempArray.reduce((product, x) => product * x)
result.push(tempResult)
}
return result
}