forEach는 map의 동작방식과 거의 완벽히 똑같지만, 다른 점이 하나 있다.
다른 점은 forEach가 인수로 받는 내부 함수가 배열 자체를 수정한다는 것,
그리고 forEach 자체는 undefined를 리턴한다는 것이다.
즉, map과 동작원리는 비슷하나 새로운 배열을 만들지 않고 기존 배열을 수정한다.
forEach가 받는 인자는 (각 배열의 요소, 그것의 인덱스, 배열 원본) 3가지 이다. (map과 똑같다)
하지만 undefined를 return 한다는 것을 기억해라.
const ages = [22, 28, 80, 48, 32]
const add5InPlace = (elem, idx, arr) => {
arr[idx] = arr[idx] + 5
}
ages.forEach(add5InPlace)
// ages = [ 27, 33, 85, 53, 37 ]
// 인덱스는 0부터 올라간다.
// arr[0] + 5 = 27
// arr[1] + 5 = 33
// arr[2] + 5 = 85
// arr[3] + 5 = 53
// arr[4] + 5 = 42
map은 mapping을 암시한다. 하나의 배열의 요소들을 새로운 배열에 '매핑'해준다.
forEach는 기존의 배열을 '수정'해준다.
'Javascript' 카테고리의 다른 글
Find (0) | 2022.08.12 |
---|---|
Filter (0) | 2022.08.12 |
배열 복사하기 (map과 [...arr] ) (0) | 2022.08.12 |
Map과 Map의 내부 작동 원리 (0) | 2022.08.12 |
배열 관련 문제 풀이 (2) (0) | 2022.08.12 |