Product of Array Except Self
var productExceptSelf = function(nums) {
let zeroCount = 0;
let productWithoutZero = 1;
let product = nums.reduce((accum, num)=>{
if(num === 0) {zeroCount++}
if(num !== 0) {productWithoutZero *= num}
return accum * num;
}, 1);
return nums.map((num, i)=>{
if(zeroCount === 0) {
return product/num;
} else if (zeroCount === 1) {
if(num===0) {
return productWithoutZero;
} else {
return product;
}
} else {
return 0;
}
})
};