배열 메서드는 callback함수로 사용할때 가장 많이 사용된다.
const arr = [0,1,2,3,4,5]; arr.forEach(function(element){ console.log(element); // 0 1 2 3 4 5 }); // 혹은 arrow 함수 가능 arr.forEach(element => console.log(element));
배열
로 만들어낸다.const arr = [0,1,2,3]; let squaredArr = arr.map(function(element){ return element * element; }); // 혹은 arrow 함수 가능 squaredArr = arr.map(element => element * element); console.log(squaredArr); // [ 0, 1, 4, 9 ]
map()과 forEach()는
공통
적으로
아래의 세 개의 인자로 호출된다.
1. currentValue (배열 원소의 값)
2. index (현재 요소의 인덱스)
3. array (현재 배열)
map()
은 배열 내의 모든 요소 각각에 대하여 주어진 함수(콜백)를 호출한 결과를 모아 새로운 배열을 반환
한다는 특징을 가지고 있다.//forEach// let arr = [1, 2, 3, 4, 5]; arr.forEach((num, index) => { return (arr[index] = num * 2); }); // arr = [2, 4, 6, 8, 10] // //Map// let double = arr.map(num => { return num * 2; }); // doubled = [2, 4, 6, 8, 10]
정리
- forEach()으로 할 수 있는 것은 map()으로도 가능하고 그 반대도 가능하다.
- map()은 메모리를 할당하고 리턴 값을 저장한다. forEach()는 리턴 값을 버리고 항상 undefined를 리턴한다.
- forEach()는 콜백함수로 현재 Array를 변환할 수 있다. 대신에 map()은 새로운 Array를 리턴한다.