React JS

Filter, Find, Map 함수

yongyongMom 2024. 6. 4. 10:59
SMALL

백엔드에서 받은 데이터를 프론트에서 보여줄 때

항상 모든 데이터를 보여주는 것이 아니라 프론트 단계에서 데이터를 다시 한번 구분지어 

보여주는 경우가 많다. 

이런 경우 사용하는 함수로 Filter 함수와 Find 함수가 있다. 

1. Filter 함수

const data = {
  [
  	title: "데이터",
  	text: "my data01",
  ],
  [
  	title: "데이터",
  	text: "my data02",
  ],
  [
  	title: "데이터",
  	text: "my data03",
  ],
  [
  	title: "데이터",
  	text: "my data04",
  ],
  [
  	title: "나의 데이터",
  	text: "my data01",
  ],
  [
  	title: "나의 데이터",
  	text: "my data02",
  ],
  [
  	title: 나의 데이터",
  	text: "my data03",
  ]
};

예를 들어 위와 같은 데이터가 있다고 가정한다.

( 이는 api 통신 이후에 받은 JSON 데이터 형식을 임의로 만들어낸 것이다. )

현재 "데이터" 이라는 title의 text 들이 필요한 상황이라면

const result = data.filter((oneData) => oneData.title === "데이터");

위의 코드로 title 이 "데이터" 인 것들만 result 에 담을 수 있다. 

result = [
      [
        title: "데이터",
        text: "my data01",
      ],
      [
        title: "데이터",
        text: "my data02",
      ],
      [
        title: "데이터",
        text: "my data03",
      ],
      [
        title: "데이터",
        text: "my data04",
      ]
  }

result 에 담겨있는 데이터는 위와 같아진다. 


2. Find 함수

find 함수는 단 하나의 값만 찾아낸다.

filter 함수는 조건에 맞는 모든 값을 찾아내 넣어줬지만 find 함수는 조건에 만족하는 단 하나의 값만 찾아낸다. 

const findResult = data.find((oneData) => oneData.title === "데이터");

title 이 "데이터" 인 것들은 총 4개가 존재하지만 위의 코드로는 단 하나의 데이터만 찾아낸다.

findResult = [title: "데이터", text: "my data01"];

 

 

단 하나의 값만 찾기 원할 때에는 find 함수를 사용하고 하나의 주제를 갖고 다양한 값을 찾는 경우에는 filter 함수를 사용하는 것이 좋을 것 같다. 


3. map 함수

map 함수는 for 반복문과 같다고 생각해도 된다. 

사용 방식이 간단한 반복문이라고 본다. 

const result = data.map((onData) => console.log(oneData));

filter, find 함수와 달리 수행할 동작을 넣을 수 있다는 장점이 있다. 

또한 filter와 find 함수를 사용하지 않고 map 함수를 이용해 조건을 걸어 같은 기능을 구현할 수 있다. 

반응형
LIST