[typescript] 타입스크립트에서 객체 배열 sort

Edward Hyun·2022년 8월 17일
0

app&web-dev

목록 보기
140/178

객체를 소트하기 위해서는 비교하는 함수를 넣어줘야 한다.
객체배열.sort(compare('키값'));

비교하는 함수 compare 함수를 구성할 때
타입스크립트에서는 string 타입과 string literal 타입을 구분한다고 한다.

따라서 key:string으로 compare 함수를 구성할 때 객체에 key값으로 접근하면 실행은 되나 화면에 빨간 줄이 뜬다.

그래서 string literal 타입으로 만들어서 넣어줘야 한다.
아래는 예시이다.

type code = 'code'; // string literal type으로 만듦.
type name = 'name';
const compare = (key: code | name) => (a: myObjectType, b: myObjectType) => {
  if (a[key] > b[key]) {
    return 1;
  }
  if (a[key] < b[key]) {
    return -1;
  }
  return 0;
};

const sortByCode = () => {
  array.sort(compare('code'));
};
const sortByName = () => {
  array.sort(compare('name'));
};

참고 :: https://soopdop.github.io/2020/12/01/index-signatures-in-typescript/

profile
앱&웹개발(flutter, vuejs, typescript, react), 인공지능(nlp, asr, rl), 백엔드(nodejs, flask, golang, grpc, webrtc, aws, msa, nft, spring cloud, nest.js), 함수형 프로그래밍(scala, erlang)을 공부하며 정리합니다.

0개의 댓글