본문 바로가기

JS

filter 작동원리

filter도 새로운 배열을 생성해서 리턴 받는다.

그런데 map처럼 길이가 모두 똑같은 것이 아니라

정확하게 원하는 원소만 배열을 생성할 수 있다.

 

        a = [10, 11, 12, 13, 14, 15];
        let answer = a.filter(function (v, i) {
            return v%2==0;
        }, [1, 2]);
        console.log(answer);

이렇게 리턴에 값을 주면 그 값이 참인 요소들만 리턴을 한다.

 

이것이 출력값.

 

 

 

         function filter(predicate, thisArg){
           let list=[];
           for(let i=0; i<a.length; i++;){
                if(predicate(a[i], i)) list.push(a[i]);
             }
             return list;
         }

그럼 작동 원리는 어떨까?

 

forEach나 map과 똑같이 요소들을 하나하나 탐색하고

콜백을 반복호출하는 것은 똑같다.

그리고 if문을 사용해서 참인 값만 list에 원소로 해주는 것.

 

 

 

'JS' 카테고리의 다른 글

reduce 작동원리  (0) 2021.08.29
map 작동원리  (0) 2021.08.25
forEach 작동원리  (0) 2021.08.24
setInterval API  (0) 2021.05.21
퍼포먼스 개발 툴 사용하기🧨  (0) 2021.05.17