JAVASCRIPT/문법

[JAVASCRIPT] map과 filter의 차이

예글 2023. 3. 7. 10:09

1. map()

- callback 함수를 각각의 요소에 대해 한 번씩 순서대로 불러 그 함수의 반환값으로 새로운 배열을 생성

 arr.map(callback(currentValue[, index[, array]])[, thisArg])

- callback: 새로운 배열 요소를 생성하는 함수. 다음 세 가지 인수를 가짐

  • currentValue : 처리할 현재 요소
  • index (Optional) : 처리할 현재 요소의 인덱스
  • array (Optional) : map()를 호출한 배열
  • thisArg (Optional) : callback을 실행할 때 this로 사용할 값

--> map의 콜백함수는 산술된 인자를 받아 배열을 만듦

--> 논리 연산일 때는, 산술 결과인 불리언 값을 리턴해 배열 만듦

 

2. 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환

arr.filter(callback(element[, index[, array]])[, thisArg])

- callback : 각 요소를 시험할 함수. true를 반환하면 요소를 유지하고, false를 반환하면 버림. 다음 세 가지 인수를 가짐

  • element : 처리할 현재 요소
  • index (Optional) : 처리할 현재 요소의 인덱스
  • array (Optional) : filter()를 호출한 배열
  • thisArg (Optional) : callback을 실행할 때 this로 사용할 값

--> 리턴값의 불리언이 true인 값만 가지고 배열을 만듦

--> 조건식이 true이면, 그 값을 그대로 저장

--> 산술 연산일 때는 뭘 해도 true이므로 원래의 값으로 그대로 저장 (단, 0만 제외 0은 false이므로)