[Node.js_4기] TIL : 주특기 심화 팀프로젝트 Day3 개발일지 (24/03/20)

2024. 3. 20. 23:01공부/내배캠 TIL

목차

 

1. 일?기

 

 

1. 일?기

 

문제라기 보다는 오늘의 개발내용 정리

< comment 기능 구현>
-> comment생성, update, delete
간단하게 구현, card와 many(comment) to one(card) 관계를 설정

CRUD

 

<card와 user를 연결하고, 작업자 할당 구현>
-> working 엔티티를 생성하여 user와 card를 각각 연결하여 M:N 구조를 만설정.
이쪽이 좀 더 어려웠다. 

CRD

 

<어제 했던 작업중 기록할만한 작업>

const ordersMap = cardIds.reduce((map, id, index) => {
      map[id] = index + 1;
      return map;
    }, {});

cardIds 배열을 사용하여 reduce 메서드를 통해 ordersMap 객체를 생성하는 코드이다.

즉, 이 코드는 cardIds 배열의 요소를 key로, 해당 요소의 인덱스에 1을 더한 값을 value로 가지는 객체를 만든다.

자세한 설명은 다음과 같다.

  1. cardIds.reduce((map, id, index) => { ... }, {}) : cardIds 배열에 reduce 메서드를 호출하며, 두 개의 인수를 취한다.
    • (map, id, index) => { ... }  : 콜백 함수
    •  {} : 누산기 초기값
  2. 콜백 함수 (map, id, index) => { ... }는 cardIds 배열의 각 요소에 대해 실행된다.
    • map: 이전 반복의 반환값으로, 첫 번째 반복에서는 초기값
    • id: 현재 처리 중인 cardIds 배열의 요소
    • index: 현재 요소의 인덱스
  3. 콜백 함수 내부에서:
    • map[id] = index + 1;은 map 객체에 새로운 프로퍼티를 만듭니다. 키는 현재 id(cardIds의 요소)이며, 값은 index + 1(현재 요소의 인덱스에 1을 더한 값)입니다.
    • return map;은 업데이트된 map 객체를 반환하며, 다음 반복에서 누산기로 사용됩니다.
  4. reduce 메서드의 두 번째 인수인 초기값은 빈 객체 {}입니다.
  5. reduce 연산이 완료되면 ordersMap 객체가 반환됩니다.

ex ) cardIds = [1, 2, 3, 4]일 때, reduce 연산은 다음과 같이 진행된다.

  1. 초기 map은 {}입니다.
  2. 첫 번째 반복: id = 1, index = 0이므로 map[1] = 0 + 1 = 1이 되고, map은 {"1": 1}이 됩니다.
  3. 두 번째 반복: id = 2, index = 1이므로 map[2] = 1 + 1 = 2이 되고, map은 {"1": 1, "2": 2}가 됩니다.
  4. 세 번째 반복: id = 3, index = 2이므로 map[3] = 2 + 1 = 3이 되고, map은 {"1": 1, "2": 2, "3": 3}이 됩니다.
  5. 네 번째 반복: id = 4, index = 3이므로 map[4] = 3 + 1 = 4이 되고, map은 {"1": 1, "2": 2, "3": 3, "4": 4}가 됩니다.
  6. 마지막 반복 후, 최종 ordersMap 객체인 {"1": 1, "2": 2, "3": 3, "4": 4}가 reduce 메서드에 의해 반환됩니다.