js higher order function에 대하여

김재욱·2023년 6월 3일

typescript

목록 보기
1/1

js higher order function

이번에는 JavaScript의 고차함수에 대하여 작성해보려고 한다.

JavaScript에서 "고차 함수"는 다른 함수를 인자로 받거나 함수를 반환하는 함수를 말합니다. 이러한 기능은 함수형 프로그래밍 스타일을 지원하며, JavaScript에서 함수를 값으로 다룰 수 있는 유연성을 제공합니다.

나는 함수를 인자로 받는 방식의 고차함수를 활용해 보았는데 결과가 훌륭했다!

활용하기 전

<CircleIconChip name={'faceWorst'} width={20} height={20} viewBox={'0 0 20 20'}  />
<CircleIconChip name={'faceBad'} width={24} height={24} viewBox={'0 0 24 24'}  />
<CircleIconChip name={'faceNormal'} width={24} height={24} viewBox={'0 0 24 24'}  />
<CircleIconChip name={'faceGood'} width={24} height={24} viewBox={'0 0 24 24'}  />
<CircleIconChip name={'faceBest'} width={20} height={20} viewBox={'0 0 20 20'}  />

이 코드가 나의 원래 코드였다. 5개의 아이콘을 직접 입력하였고 새로운 아이콘을 추가하고 싶다면 직접 추가하면 되었다.

map을 이용한 고차함수를 활용

export type IconItem<TName = IconRegistryKey, TBox = ViewBoxSize> = {
  name: TName;
  width: string | number;
  height: string | number;
  viewBox: TBox;
};

export const CIRCLE_ICON_PRESET: Array<IconItem> = [
  { name:'faceWorst' , width:20 , height:20 , viewBox:'0 0 20 20' },
  { name:'faceBad' , width:24 , height:24 , viewBox:'0 0 24 24' },
  { name:'faceNormal' , width:24 , height:24 , viewBox:'0 0 24 24' },
  { name:'faceGood' , width:24 , height:24 , viewBox:'0 0 24 24' },
  { name:'faceBest' , width:20 , height:20 , viewBox:'0 0 20 20' },
];

...

{CIRCLE_ICON_PRESET?.map((icon) => {
	return (
		<CircleIconChip name={icon.name} width={icon.width} height={icon.height} viewBox={icon.viewBox} />
	);
})}

이렇게 작성을 하고 나면 화면에 들어가는 icon의 구성은 CIRCLE_ICON_PRESET에서 확인하면 되고 이를 화면에 띄우는 부분은 밑의 return 구문에서 이뤄지니 코드가 훨씬 짧고 읽기 쉽게 바뀐 것을 알 수 있다.

혹시 이 방법 외에도 좋은 방법이 있다면 알려주세요! 읽어주셔서 감사합니다.

이 블로그를 보고 공부하였습니다.

profile
초보 개발자의 우당탕탕 코딩일기

0개의 댓글