Product of Array Except Self
LeetCode題目: 238. Product of Array Except Self
My solution:
/**
* @param {number[]} nums
* @return {number[]}
*/
let productExceptSelf = nums => {
if(!nums.includes(0)) {
const totalProduct = nums.reduce((prev, curr) => prev = parseFloat(prev * curr), 1);
return nums.map(v => totalProduct/v);
}else {
return nums.map((v, idx, arr) => {
if(v !== 0) {
return 0;
}else {
if(arr.findLastIndex(v => v === 0) === idx) {
const deepCloneArr = Array.from(arr);
deepCloneArr.splice(idx, 1);
return deepCloneArr.reduce((prev, curr) => prev = parseFloat(prev * curr), 1);
}else {
return 0;
}
}
});
}
}