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;
                }
            }
        });
    }   
}
profile-image
Hi, 我是 Zeki。目前為一名前端工程師。我相信科技始終來自於人性,是用來幫助人們過上更有品質的生活的,但願也希望如此。