/** * @param {number[]} nums * @return {number[]} */ const productExceptSelf = (nums) => { if (1 === nums.length) return [0]; let factorList = [], defaultFactor = 1; for (let i = 0; i < nums.length; i++) { factorList[i] = defaultFactor; defaultFactor *= nums[i]; } defaultFactor = 1; for (let j = 0; j < nums.length; j++) { factorList[nums.length - (j + 1)] *= defaultFactor; defaultFactor *= nums[nums.length - (j + 1)]; } return factorList; };