FrontEnd/JavaScript
[JS] filter함수를 통한 조건에 맞는 배열 재구성 feat. map()
모찌바라기
2021. 7. 31. 18:45
728x90
반응형
다음과 같은 객체로 이루어진 배열이 있다고 가정해보자.
만약 위에서 name이 호랑이인 객체들만 추출하거나, id안에 숫자가 포함된 객체들을 추출하여 배열로 만들어야 할 때
filter함수를 이용할 수 있다.
filer()는 javascript에서 제공하는 내장함수로
1. 원하는 값들을 이용해 새로운 배열을 만들 수 있다.
2. 해당 조건이 true인 값에 대해서만 가져와 배열에 넣는다.
여기서 name이 '호랑이'인 객체들만 추출하여 새로운 배열을 만든다고 하면 다음과 같이 조건을 주어 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});
728x90
반응형