forEach()
메서드는 배열의 각 요소에 대해 주어진 함수를 실행하며, 반환 값이 없습니다. 즉, 반환되는 값이 없고, 배열의 각 요소를 단순히 반복적으로 실행합니다.
map()
메서드는 반면, 배열의 각 요소에 대해 주어진 함수를 실행하고, 그 결과를 모아 새로운 배열을 반환합니다. 따라서 map()
은 새로운 배열을 반환하며, 각 요소를 변환하는 데 사용됩니다.
결국 차이점은 리턴값이 있느냐 없느냐이다.
forEach는 단순하게 배열의 각 요소에 주어진 함수를 그저 실행할뿐이고
map은 배열의 각 요소에 주어진 함수를 실행하고 그 결과를 새로운 배열에 저장하여 반환한다.
const prices = ['1000','2000','3000','4000']
arr.forEach(price=>price+'원')
이 케이스에서 가격 뒤에 각각 ‘원’을 붙인 결과의 배열을 원한다면 forEach대신 map을 사용하는게 맞다.
const prices = ['1000','2000','3000','4000']
arr.map(price=>console.log(price))
이 케이스는 단순하게 콘솔에 로그를 띄우는 작업이기 때문에 배열을 반환받을 필요는 없다.
즉 forEach 메소드 사용이 적합하다고 볼 수 있다.
둘중 하나만 맹목적으로 사용하는것이 아니라 상황에 따라서 , 명세에 맞게 알맞게 사용하자.
클린코드 자바스크립트 (유데미 강의)