https://medium.com/@dawsoncontreras/leetcode-238-product-of-array-except-self-javascript-solution-ddebb724e4de