Find the product of all numbers except 0. Find all zeros and index of first zero
If two or more of number = 0 than all result items = 0
If one number = 0 than only result item with this index = product, all other = 0
If no 0 numbers than all result items = product/number
let zeros = 0;
let zeroIndex = undefined;
let product = 1;
for (let i = 0; i < arr.length; i++) {
if (arr[i] === 0) {
if (zeros === 0) zeroIndex = i;
zeros++;
} else {
product *= arr[i];
}
}
let res = [];
if (zeros > 0) {
res = new Array(arr.length).fill(0);
if (zeros < 2) {
res[zeroIndex] = product;
}
return res;
}
for (let i = 0; i < arr.length; i++) {
res.push(Math.round(product / arr[i]));
}
return res;
function productOfTheOthers(array) {
// Write your code here
const productOfAll = (arr, skipIndex) => arr.reduce((prev, current, i) => {
if (i !== skipIndex) prev *= current;
return prev;
} , 1);
return array.map((_, i, original) => productOfAll(original, i));
}
console.log(productOfTheOthers([1, 2, 3, 4, 5]))
// Leave this so we can test your code:
module.exports = productOfTheOthers;