개발
[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);
배열 메드를 사용하는이유는?
이런 메소드들을 사용하는 이유는 이 메소드를 이용하면 배열의 값의 영향을 주지않고 배열의 값을 수정하거나 필터링을 거치거나 형식을 바꾸어서 사용할 수 있기 때문이다
반응형