개발

[JS] forEach와 map 사용법과 차이점

0hyeon의 2023. 1. 29. 13:03
반응형

프로그래머스 문제를 풀다가 배열을 순회함에 있어, 어떤것은 forEach, 어떤것은 map을 사용하는것을 발견하여 서치를 시작하였다.

결론부터 말하면 둘다 배열안에  요소를 순회하는 공통점이 있었으나 쓰임이 달랐다.

 

map은 순회하는 각 요소들이 업데이트 되어 새로운 배열로 리턴할때 유용 
forEach는 배열안에 특정 요소만이 특정 작업을 수행하는경우 유용 했다. (원본 배열은 건드리지 않음)

 

 

즉, 결과 배열이 필요한지(map), 아니면 각 요소에 대한 작업 결과만이 필요한지에 따라(forEach) 

map이나 forEach를 사용하는 것이 적합한지 결정하는 차이가 있을 수 있겠다. 

 

Tip. forEach의경우 다음처럼 체이닝 메서드를 이용하면 용이

sailors
    .filter(sailor => sailor.active)
    .map(sailor => sailor.email || `${sailor.name}@wiscail.io`)
    .forEach(sailor => sendEmail(sailor));

 

map에 경우는 다음과 같이 쓰인다.

// for
const instruments = [];
for (let i=0; i < band.length ; i++) {
    const instrument = band[i].instrument;
    instruments.push(instrument);
}

// map
const instruments = band.map(member => member.instrument);

 

배열 메드를 사용하는이유는?

이런 메소드들을 사용하는 이유는 이 메소드를 이용하면 배열의 값의 영향을 주지않고 배열의 값을 수정하거나 필터링을 거치거나 형식을 바꾸어서 사용할 수 있기 때문이다

반응형