https://medium.com/@vitaliykorzenkoua/the-most-difficult-javascript-interview-question-3-c8be7c0e08b2