그냥 '===' 쓰면 안되나요...
const obj1 = { a: "apple", b: "banana", c: "cat" }
const obj2 = { a: "apple", b: "banana", c: "cat" }
const obj3 = { a: "apple", c: "cat", b: "banana" }
const obj4 = { a: "air", b: "boy", c: "cow" }
위의 obj1을 기준으로
를 비교해봅시다~
//모두 false
console.log(obj1 === obj2)
console.log(obj1 === obj3)
console.log(obj1 === obj4)
//true
console.log(Object.entries(obj1).toString() === Object.entries(obj2).toString())
//false
console.log(Object.entries(obj1).toString() === Object.entries(obj3).toString())
//false
console.log(Object.entries(obj1).toString() === Object.entries(obj4).toString())
obj1Stringify = JSON.stringify(obj1)
obj2Stringify = JSON.stringify(obj2)
obj3Stringify = JSON.stringify(obj3)
obj4Stringify = JSON.stringify(obj4)
//true
console.log(obj1Stringify === obj2Stringify)
//false
console.log(obj1Stringify === obj3Stringify)
//false
console.log(obj1Stringify === obj4Stringify)
const lodash = require('lodash')
//true
console.log(lodash.isEqual(obj1, obj2))
//true
console.log(lodash.isEqual(obj1, obj3))
//false
console.log(lodash.isEqual(obj1, obj4))
[이미지 출처] http://gph.is/1yw44rd