Maxim ход мыслей очень логичный. Единственный нюанс в том, что порядок полей в объектах не имеет значения, поэтому ты не можешь сравнивать их используя индекс.
Эти два объекта равны, но твой код вернет false
.
const obj1 = { b: 'f', a: 12, c: true },
const obj2 = { c: true, b: 'f', a: 12 },