오늘은 팀원 중 가장 우수한 코딩 실력을 보유중인 팀원의 의견으로
다 같이 미니 프로젝트를 만들었다. 야구게임
그렇게 하나씩 코드를 짜고 함수형 프로그래밍에 대해서 조금 알려주셨는데
map 메소드의 동작 원리였다.
map() 메소드는 배열의 각 요소를 돌며 해당 요소를 가공하여 새로운 배열로 return 하는 것.
동작원리 코드
let a = [1,2,3,4,5,6];
function map(실행할동작) { // 인자에는 '실행할동작'을 콜백함수로 전달하도록 설정
let arr = []; // 가공한 값들을 넣어 반환 할 배열 생성
for (let i = 0; i < a.length; i++) { // 함수를 적용하는 배열(a)의 길이만큼 반복을 돌며
arr.push(실행할동작(a[i])); // 각각의 요소마다 '실행할동작' 함수를 적용 후 새 배열 arr에 추가
}
return arr; // 기존 배열의 각 요소에 '실행할동작' 함수를 적용 후 새 배열에 담아 반환
}
let newArray = a.map(function (num) {
return num * num; // 이 경우에는 '실행할동작' 함수가 '요소 * 요소'이다
});
console.log(newArray); // [ 1, 4, 9, 16, 25, 36 ]
원래 메소드는 MDN 사이트에서 사용법을 학습하고 이용만 했는데
한 단계 들어가 그 메소드를 직접 구현해보는 경험을 해보니
시야가 조금 넓어진 느낌이 들었다.
알고리즘 같이 문제를 해결할 때 좀 더 넓게 생각하는데 도움이 될 수 있을 거 같다.