js_두 객체 비교하기

dev.dave·2023년 7월 24일

Javascript

목록 보기
34/167

// const obj1 = {
// a: "a",
// b: 1,
// c: {
// e: null,
// f: -1,
// },
// };

const obj1 = {
a: "a",
b: 1,
c: ["a", "b", "c"],
d: {
e: null,
f: -1,
},
};

const obj2 = {
a: "a",
b: 1,
c: ["a", "b", "c"],
d: {
f: -1,
e: null,
},
};

// 두 객체를 비교한다 했을때, 두객체의 모든 key : value 를 비교를 하고, 하위에 있는 오브젝트까지 깊숙히 비교를 해서 ,
// 이 두가지 주어진 객체들이 완전히 동등한지 아닌지 검사하고, 그여부를 리턴해주는 문제죠. 실무에서도 자주 씀.
// 자바스크립트에서, 객체는 참조타입이다.
//그래서 원시타입(숫자나 문자열) 처럼 직접적으로 비교할 수가 없다.

//obj1 === obj2 // 이렇게 비교가 불가능 하다는 거다.

// 그래서,
// 자바스크립트 빌트인 함수 JSON.stringify를 이용할 꺼다.
//JSON.stringify // 여기에 객체를 전달하면, 그 오브젝트의 모든 값을 문자열로 묶어준다. 그다음 비교를 한다.

// function isEqual(objA, objB) {
// let a = JSON.stringify(objA);
// let b = JSON.stringify(objB);

// //return a === b; // 이런식으로 바로 비교를 할 수도 있지만, 오브젝트 key의 순서가 바뀌어 버리면, 두 오브젝트가 동등하더라도, true로 리턴이 되지 않는다.
// // split()사용해서 문자열을 쪼개서 배열로만들고, 그리고 그 배열을 sort()사용해서 a,b,c순서대로 정렬한다 -> 그다음 join()함수 사용해서 문자열로 다시 변환을 해준다. 그래서 최종 리턴된 문자열 값이 stringA 와 stringB와 같냐를 비교를해서 애너그램이 맞는지아닌지르 ㄹ확인!
// return a.split("").sort().join("") === b.split("").sort().join("");
// }
// console.log(isEqual(obj1, obj2));

////////////////////////////////////////////////////////

//두번째 방법은, 함수형으로 비교하기이다.
// Object, Array 를 활용하는 방법이다.

function isEqual(objA, objB) {
const checkObjs =
objA && objB && typeof objA === "object" && typeof objB === "object";

if()

}

profile
🔥개인 메모 / 다른블로그 자료 참조 / 다른블로그 자료 퍼옴 (출처표기) /여기저기서 공부 했던 내용 개인메모 & 참고 / 개인 기록 용도 블로그 입니다.🔥

0개의 댓글