일단 사용법은 둘 다 같으며 아래와 같다.
let a = [1,2,3,4]
arr.forEach((number, index) => {
console.log(number ? +number + index? + index);
});결과
number ? 1 index? 0
number ? 2 index? 1
number ? 3 index? 2
number ? 4 index? 3
기본적인 골자는 같지만 forEach와 map는 큰 차이가 있는데 그것은 return의 여부이다.
그 차이는 아래와 같다.
forEach case::
let arr = [1,2,3,4,5]
arr.forEach(x=>{x*2})결과
undefined
map case::
let arr = [1,2,3,4,5]
arr.map(x=>{return x*2}) //return 필수 return이 없으면 값으로 undefined 출력결과
(5) [2, 4, 6, 8, 10]
이와 같이 forEach는 값을 return 할 수 없는데 map은 기존 배열에 값을 더해서 새로운 배열로 반환한다.
만약 forEach를 map처럼 사용하고 싶다면 아래와 같이 사용해야 한다.
let arr = [1,2,3,4,5]
let b = []
arr.forEach(x=>b.push(x))결과
(5) [1,2,3,4,5]
이와 같이 빈 배열을 가진 변수를 선언하고 그 변수에 push하여야 한다.