Grace
grace's dev_note
Grace
전체 방문자
오늘
어제
  • 분류 전체보기
    • FrontEnd
      • Next.js
      • React
      • ReactNativ..
      • Vue
    • Javascript
      • 러닝 자바스크립트
      • 모던 자바스크립트
    • CS
    • DataScienc..
      • Data Struc..
      • LeetCode
    • BackEnd
      • Express
      • Node.js
      • Nest.js
    • DevOps
      • Docker
    • 매일메일
    • 회고
    • 코드캠프

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바스크립트
  • tanstack
  • Express
  • nest.js
  • Vue.js
  • backend
  • Vite
  • Vue
  • vitejs
  • Vue3
  • postgres
  • pinia
  • 알고리즘
  • javascript
  • 번들러
  • React Native
  • node.js
  • 함수
  • vue-query
  • PostgreSQL

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Grace

grace's dev_note

코드캠프

코드캠프 7일차

2022. 9. 30. 12:41

map / filter

map 메소드

forEach와 비슷하게 배열의 요소를 하나씩 살펴보면서 반복 작업을 하는 메소드. 단, 첫 번째 아규먼트로 전달하는 콜백 함수가 매번 리턴하는 값들을 모아서 새로운 배열을 만들어 리턴하는 특징이 있다.

const numbers = [1, 2, 3];
const twiceNumbers = numbers.map((element, index, array) => {
  return element * 2;
});

console.log(twiceNumbers);// (3) [2, 4, 6]_텍스트_
const FRUITS = [
  { number: 1, title: "레드향" }, // <div>1 레드향</div>
  { number: 2, title: "샤인머스켓" }, // <div>2 샤인머스켓</div>
  { number: 3, title: "산청딸기" }, // <div>3 산청딸기</div>
  { number: 4, title: "한라봉" },
  { number: 5, title: "사과" },
  { number: 6, title: "애플망고" },
  { number: 7, title: "딸기" },
  { number: 8, title: "천혜향" },
  { number: 9, title: "과일선물세트" },
  { number: 10, title: "귤" },
];

export default function MapFruitsPage() {
  // const mapFruitsPage = FRUITS.map((el)=><div>{el.number} {el.title}</div>)

  return(
    <div>
      {FRUITS.map((el)=><div>{el.number} {el.title}</div>)}
    </div>


  )
}

filter 메소드

filter 메소드는 배열의 요소를 하나씩 살펴보면서 콜백함수가 리턴하는 조건과 일치하는 요소만 모아서 새로운 배열을 리턴하는 메소드.

const devices = [
  {name: 'GalaxyNote', brand: 'Samsung'},
  {name: 'MacbookPro', brand: 'Apple'},
  {name: 'Gram', brand: 'LG'},
  {name: 'SurfacePro', brand: 'Microsoft'},
  {name: 'ZenBook', brand: 'Asus'},
  {name: 'MacbookAir', brand: 'Apple'},
];

const apples = devices.filter((element, index, array) => {
  return element.brand === 'Apple';
#### });

console.log(apples);// (2) [{name: "MacbookPro", brand: "Apple"}, {name: "MacbookAir", brand: "Apple"}]

게시판 목록 만들기

map과 filter를 사용하여 쉽게 게시판 목록을 만들어줄 수 있다.

    <>
    <div>
      {data?.fetchBoards.map((el, idx)=>(
        <Row>
          <Column><input type="checkbox" /></Column>
          <Column>{idx+1}</Column>
          <Column>{el?.title}</Column>
          <Column>{el?.writer}</Column>
          <Column>{el?.createdAt}</Column>
          <Column><button id={el.number} onClick={handleDelete}>삭제하기</button></Column>
        </Row>
      ))}
    </div>
  </>

refetch Queries

게시판 목록에서 하나를 삭제할 경우 다시 불러와서 게시판을 보여주기

  async function handleDelete(event) {
    try {
      await deleteBoard({
        variables: {number: Number(event.target.id)},
        refetchQueries: [{ query: FETCH_BOARDS }]
      })
    } catch(error) {
      alert(error.message)
    }

  }
저작자표시 비영리 변경금지 (새창열림)

'코드캠프' 카테고리의 다른 글

코드캠프 9일차  (0) 2022.09.30
코드캠프 8일차  (0) 2022.09.30
코드캠프 6일차  (0) 2022.09.30
코드캠프 5일차  (0) 2022.09.29
코드캠프 4일차  (0) 2022.09.29
    '코드캠프' 카테고리의 다른 글
    • 코드캠프 9일차
    • 코드캠프 8일차
    • 코드캠프 6일차
    • 코드캠프 5일차
    Grace
    Grace
    기술 및 회고 블로그

    티스토리툴바