https://rahuulmiishra.medium.com/javascript-interview-question-implement-abstract-equality-algorithm-4d44da8a6ed3