개발공작소
article thumbnail
728x90
반응형

다음과 같은 객체로 이루어진 배열이 있다고 가정해보자.

 

샘플 배열

만약 위에서 name이 호랑이인 객체들만 추출하거나, id안에 숫자가 포함된 객체들을 추출하여 배열로 만들어야 할 때

filter함수를 이용할 수 있다.

filer()는 javascript에서 제공하는 내장함수로 

 

1. 원하는 값들을 이용해 새로운 배열을 만들 수 있다.

2. 해당 조건이 true인 값에 대해서만 가져와 배열에 넣는다.

 

여기서 name이 '호랑이'인 객체들만 추출하여 새로운 배열을 만든다고 하면 다음과 같이 조건을 주어 filter함수를

이용할 수 있다.

 

filter함수를 이용한 조건에 맞는 객체 추출

배열.filter(function(e) { return 조건 }); 과 같은 형식으로 조건에 맞는 값들을 리턴하여 새로운 배열에 넣을 수 있다.

 

근데 filter함수를 보면서 느낀 게 있는데

map함수도 배열에 있는 특정 값들을 추출해서 다른 배열로 넣어주는 역할을 하는데 map함수에서는 조건을 못넣을까? 그런 생각이 들었다.

 

ps.  filter함수와 map함수를 같이 사용하면 조건에 맞는 특정 key의 value값을 가져올 수 있다!!

var str2 = arr.filter(function(e) { return e.name == '호랑이' }).map(function(e) {return e.id});

arr배열의 name이 '호랑이'인 id값을 전부 추출

 

728x90
반응형
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!