안녕하세요
타입스크립트 map과 rudece 작성 본문
const getAverageReplyTime = (replyTimes: ReplyTime[][][]) => {
const averageReplyTimeArray: number[][] = [];
for (const chatroom of replyTimes) {
const averageReplyTime: number[] = chatroom.map((times: ReplyTime[]) => {
const averageReplyTime: number = times.reduce((acc: number, cur: ReplyTime) => acc + (cur.difference / cur.count || 0));
return Math.floor(averageReplyTime / times.length);
});
averageReplyTimeArray.push(averageReplyTime);
}
return averageReplyTimeArray;
};
1. replyTimes는 삼차원배열 구조로 되어있다.
replyTimes: ReplyTime[][][]
모든 데이터 > 채팅방 > 대화정보
2. for문으로 chatroom에 대해서 map을 돌린 결과는 number[] 타입이어야 한다.
const averageReplyTime: number[] =
3. map으로 순회하는 요소는 ReplyTime 객체를 담은 배열이어야 한다.
chatroom.map((times: ReplyTime[]) => {
4. averageReplyTime에는 number를 할당해야 한다.
const averageReplyTime: number =
5. reduce의 accumulator는 number, currentValue는 ReplyTime 타입이어야 한다.
times.reduce((acc: number, cur: ReplyTime) => acc + (cur.difference / cur.count || 0));
'데이터시각화-KMG' 카테고리의 다른 글
아토믹 디자인 패턴이란 (0) | 2023.05.01 |
---|---|
카카오 돋보기(Kakao Magnifying Glass) 프로젝트 (0) | 2023.04.29 |
.filter(Boolean)=> null이나 ""와 같은 falsy한 값들을 제거 (0) | 2023.04.25 |
리액트 텍스트 <br> 줄바꿈, HTML 특수기호 디코딩(he라이브러리) (0) | 2023.04.23 |
리액트 TS 프롭스 전달, useSelector, PayloadAction 타입 지정 (0) | 2023.04.20 |