[JS] 객체 데이터 비교하기

객체끼리의 비교

`변수`끼리는 데이터를 비교하여 값이 같거나 다르면 `true/false`를 리턴해준다. 하지만 `객체`끼리 비교하게 되면 값이 같아도  `false`를 리턴하는데 이유는 메모리에 `` 자체를 저장하는게 아니고 객체가 저장된 `주소값`을 저장하기 때문이다. 따라서 같은 데이터를 가지고 있더라도 다른 주소를 참조 하기 때문에 `false`가 나오게 된다.

 


 

그럼 어떻게 비교하는데?

`JSON.stringify()`를 사용해서 객체를 ` 문자열로 변환 `하고 비교하면 된다.

 

객체를 문자열로 변환 | JSON.stringify()

let person = {
    name: "홍길동",
    age: 30,
    gender: "남자",
}

console.log(JSON.stringify(person));

// 출력: {"name":"홍길동","age":30,"gender":"남자"}

 

 객체끼리의 데이터 비교

let person = {
    name: "홍길동",
    age: 30,
    gender: "남자",
}

let person2 = {
    name: "홍길동",
    age: 30,
    gender: "남자",
}


console.log(person == person2);
console.log(JSON.stringify(person) == JSON.stringify(person2));

// 출력: false;
// 출력: true;

댓글

Designed by JB FACTORY