본문 바로가기
JAVASCRIPT

.filter() 써봅니다... feat . MDN

아 어디서부터 여기까지 흘러왔는지 글을 정리하려고 쓰다보니 쓸게 한두개가 아님.

발단은 "두개의 배열 A , B 에서 A안에 없는 B값을 구하라" 요것이었지.

 

물론, 기반지식 1도 없는 나는 이리저리 찾아보다가 좋은 블로그를 하나 발견했는데 여기서 답을 찾다가 "으잉?" 하는 문법을 보게됨. (아직 부족한 코린이... 연차에 비해 지식이 낮아요)

 

https://soft91.tistory.com/84

 

[Javascript] 두 배열의 대한 비교 방법

[Javascript] 두 배열의 대한 비교 방법 실무에서나 알고리즘의 대한 공부를 할 때 두 배열의 대한 비교나 교집합(Intersection), 차집합(Difference)은 정말 많이 사용되는 것 같다. 특히 알고리즘을 풀

soft91.tistory.com

 

 result.push(participant1.filter(x => !completion1.includes(x)));

아니, filter() 요거 분명히 봤는데 아무리 봐도 구문이해가 안됨. 

그러니까 사용할때는 멋모르고 막 썼는데, 막상 이해하면서 코드분석을 하려니 가물가물....

 

요럴땐 어떻게 하냐!! 바로 MDN 에서 찾아봐야 함. 

- 자바스크립트 추천해요, 자바스크립트 어떻게 공부해요, 모르는건 블로그말고 어디를 봐야되요 하는 질문에 무조건적으로 1순위로 나오는 곳.

 

* MDN : 모질라 개발자 네트워크 ( Mozila Developer Network)

: 처음엔 모질라 개발자들만을 위한 플랫폼으로 올렸던거 같은데 이후 웹표준 이나, 자바스크립트 자료들이 올라오고, 서로 바꾸며 수정하면서 이후, 신뢰할 수 있는 자바스크립트 네트워크라 칭해진다.

( 요거는 나는 그냥 찾아보기만 하는 중이라.. 혹시 잘못안거라면 정정부탁드려요 ㅎ)

 

Array.prototype.filter()
filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.

 

오호 filter는 array 내장되어있는 표준 객체중 하나구나! 

[예시]

const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter(word => word.length > 6);

console.log(result);
// 예상결과: Array ["exuberant", "destruction", "present"]

MDN에서 제공해주는 예시를 살펴봤을때,  두번째 줄을 보면 filter()안에는 filter로 걸러야할 조건을 명시해야만 정확하게 사용이 가능하다고 친절하게 알려주고 있다.

 

filter( word [words 내에 있는 하나하나의 값] => word길이가 6자리 초과면 걸러주세요) 가 되는것.

 

* 일단 화살표함수는 이후 정리해서 올릴예정(솔직히 알기만 하면 쉬운거 1위에 랭크됨)

 

+ 물론, filter()를 모르고 지나쳤을때는 무조건 이렇게 씀.

  틀린건 아니지만.... 알지? 인간적으로 코드 줄이자.ㅋㅋ

const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result=[];

for(let i=0; i<words.length; i++){
    if(words[i].length > 6){
        result.push(words[i]);
    }
}

console.log(result);

 

 

++ 사담

이직전에는 내일에 치여서 바쁘다는 핑계로 잠만 자고 전혀 블로그 관리는 커녕 아무것도 안했었는데

진짜 지금 너무 재밌다. 물론 아직 일이 배정된건 아니지만... 그래도 이렇게 알아가는 재미는 다시 느낄수 없다고 생각했는데 이런게 개발자의 묘미인가 싶다.