본문 바로가기
Javascript

[JS] Nested 객체 다루기

by SeanK 2024. 2. 29.

안녕하세요 :)

사이드 프로젝트로 간단한 캘린더 어플을 만들고 있는데요. 날짜 데이터가 은근히 다루기가 까다롭네요 ㅠㅠ

 

날짜(+ 약속) 데이터를 어떻게 하면 잘 정리된 상태로 보관하면 좋을지 생각을 해보다가 아무래도 중첩 객체 형태로 데이터를 다루는 게 좋겠다고 생각했습니다.

{"year": {
	"month: {
    		"date": []
    	}
	} 
}

 

이렇게 데이터를 보관하면 탐색과 저장 속도가 빠르고 서버와의 소통에도 장기적으로 용이하다고 생각했기 때문입니다.

 

문제는 배열의 경우 물음표 식별자를 통해 "undefined" 처리를 하기가 쉽지만 객체에서는 꽤나 까다로운 부분이 있었습니다.

 

키값이 있는지 없는지 확인을 해야하기 때문에 if문이 줄줄이 늘어나는 문제가 있었습니다.

 

그래서 객체의 중첩된 내부객체 값을 쉽게 찾을 수 있는 함수를 만들었습니다.

export const findProperty = (obj: any, path: number[]) => {
  const property = path.reduce((object, key) => {
    return (object || {})[key];
  }, obj);

  return property;
};