본문 바로가기

기술면접

(고차함수) forEach와 map의 차이

1. forEach

forEach( ) 메서드는 주어진 함수를 배열 요소에 대해 각각 실행한다.

 

 

구문

arr.forEach(callback(currentvalue[, index[, array]])[, thisArg])

 

반환값

undefined

 

  • 각 배열 요소에 대해 한번씩 callback 함수를 실행한다.
  • undefined를 반환하기 때문에 메서드 체인의 중간에 사용할 수 없다.

 

2. map

map( ) 메서드는 주어진 함수로 배열의 모든 요소에 대해 적용한 결과를 모아 새로운 배열을 반환한다.

 

 

console.log( ) 함수는 배열 요소를 변화시키지 않기 때문에 적용한 결과값이 없다.

그래서 undefined으로 출력되었다.

 

  • map은 인자로 주어진 배열의 요소를 순회하고 callback 함수를 적용한 결과를 출력한다.
  • 반환값은 모든 요소에 대해 적용한 새로운 배열이다.
  • map은 호출한 배열의 값을 변형하지 않는다. 그러나 callback 함수에 의해서 변형될 수는 있다.

 

구문

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

 

array

map( )을 호출한 배열

 

반환값

배열의 각 요소에 대해 실행한 callback의 결과를 모은 배열