본문 바로가기

코드스테이츠(Pre)

filter function 이해하기

filter 란?

filter() 메소드는 원래의 array 에서 특정조건이 통과하는 모든 값들을 새로운 배열로 만들어낸다.

let newArr = oldArr.filter(callback);

newArr : return 되는 새로운 array

oldArr : filter function이 실행되는 array

callback : oldArr의 element들에 실행되는 function, true면 element를 모으고, false일 경우 버린다.

- element : array의 현재 element

- index : 처리되는 값의 현재 index

- arr : 원래의 array

 

Filter vs For Loop 

let arr = [1, 2, 3, 4, 5, 6];
let even = [];

for(var i = 0; i < arr.length; i++) {
	if(arr[i] % 2 === 0) even.push(arr[i]);
}
// even = [2,4,6];

arr의 모든 값들 중 짝수 값만 통과해서 even array로 push 된다.

짝수의 모든 값들을 포함한 array even = [2, 4, 6]이 생성된다.

filter()를 사용해서 동일한 함수를 만들 수 있다.

arr가 우리가 map할 array이다. 짝수일경우 true로 return해서 값이 저장되고, 홀수인 false로 return 된다.

let arr = [1, 2, 3, 4, 5, 6];
let even = arr.filter(val => {
	return val % 2 === 0;
});
// even = [2, 4, 6]

filter() function에서는 저장하고 싶은 값에 대해 true로 return하면 된다. 나머지는 filter()가 처리한다.

value(val)이 짝수인지를 테스트 한다. 

 

Filter & ES6

let cities = data.filter(val => {
	return val.population > 50000;
});

어떤 값이 리턴되는지에 대한 괄호 또한 생략가능하다

let cities = data.filter(val => val.population > 50000);