JavaScript

[Vanilla JS]객체배열속에서 원하는 값이 있는 배열만 꺼내오는 방법 / 하나의 id 값으로 원하는 배열 찾는 법

혬00 2023. 6. 8. 15:42

const a = [ {id=1,---} , {id=2 ,---} , {id=3,---} , {-----}]

이러한 배열이 있다고 생각해보자

이때 id =3 이 들어있는 객체의 모든 값들을 가져오고 싶을때 

filter 를 사용해야할까 ? 아님 for을 이용해 하나하나 대비해서 가져와야할까 ?

제일 효율적인 방식이 뭘까 ? 를 생각했을때

 

 

filter() 

주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.

말 그대로 필터를 사용하면 통과하는 모든것들을 모아서 새로운 배열을 만든다

우리가 하고싶은건 객체에서 원하는 것들 만 가져오는것

우선 의미적으로도 이 함수를 사용하는건 옳지 않거니와 필터를 사용했을때 나오는 값을 consol찍어보면 이러한 결과가 나온다

 

sdsds

딱 보면 알겠지만 값이 이상하다

이러한 배열을 어떻게 끄내올건지 생각하면 머리가 아프다

 

find()

find를 사용하면 원하는 배열이 잘 나온다 ! 

그럼 이때 어떻게 해야할까 !!!!

 

const result = movies.find((x) => x.id === id);

내가 가져온 id 값과 원래 api속 id 값이 일치하는걸 가져와서 result에 담는다 !

나중에 사용할땐

result.title 

resuit.id

이런식으로 사용해주면 된다

오늘도 오래걸렸지만 기초부터 제대로 알게된 것 같아 마음이 편하다