안녕하세요

타입스크립트 map과 rudece 작성 본문

데이터시각화-KMG

타입스크립트 map과 rudece 작성

sakuraop 2023. 4. 26. 21:46
 
  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));