Development/Javascript

[JS] map, forEach

Rosie, Lee 2021. 10. 5. 23:13

배열을 통해 많이 사용되는 map과 foreach에 대해 정리합니다.

아래 MDN 공식 문서를 참고해보세요.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map

 

Array.prototype.map() - JavaScript | MDN

map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.

developer.mozilla.org

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

 

Array.prototype.forEach() - JavaScript | MDN

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

developer.mozilla.org

 

map과 forEach 모두 배열의 길이만큼 반복합니다.

두 가지 모두 생긴 모양은 비슷합니다.

작성하는 방식과 차이점에 대해 알아보겠습니다.

 

map()

const strs = ['one','two','three'];

const b = strs.map(function (str,index){
  return `${str}AND${index}`;
});

console.log(b);
// output -> (3) ["oneAND0", "twoAND1", "threeAND2"]

map의 콜백함수를 사용하면 값이 반환되며, 새로운 배열을 만들어줍니다.

 

 

forEach()

const nums = [1, 2, 3];

const a = nums.forEach(function (num, index) {
  console.log(`${num}AND${index}`);
});

console.log(a);
// output -> undefined

forEach는 값이 반환되지 않으며, 새로운 배열도 만들어주지 않습니다.

이 부분이 map과 forEach의 큰 차이점입니다.

 

 

위 코드를 화살표 함수로 변경해보도록 하겠습니다.

const nums = [1, 2, 3];
const strs = ["one", "two", "three"];

// forEach
const a = nums.forEach((num, index) => {
  console.log(`${num}AND${index}`);
});
console.log(a);

// map
const b = strs.map((str, index) => `${str}AND${index}`);
console.log(b);
반응형