가나다
, abc
순이 아닌 특정 값을 기준으로 정렬해야 할 때
export const OrderType = ["부재", "직경", "직경누락", "기초", "슬래브", "벽체", "기둥", "보"]
기준을 배열로 만들어서 선언해주고
const orderList = list.sort(
(a, b) =>
OrderType.indexOf(a.group as string) -
OrderType.indexOf(b.group as string),
);
불러와서 sort
시켜주면 된다
indexOf - MDN
중분류는 이렇게 기준을 만들어서 정렬했는데
나머지 소분류는 어떻게 정렬해야할까 🤔
다중 조건 기준으로 정렬하려면
기존 정렬 기준에 or 연산자
를 사용하면 된다
const orderGroupList = list.sort(
(a, b) =>
OrderType.indexOf(a.group as string) -
OrderType.indexOf(b.group as string) ||
a.key?.localeCompare(b.key as string) ||
0,
);
group
을 특정 기준으로 정렬한 다음 ||
(or 연산자)를 사용해서 key
를 정렬해준다