[Javascript] map 메소드
친한듯 친하지 않은 map 함수를 위와 같이 수기로 정리 했다.
map함수는
반복문을 돌며 배열안의 요소들을 1:1로 짝지어준다.
어떻게 짝지어 줄 것인가 정의한 함수를 메서드의 인자로 넣어주면 된다.
map을 실행하는 배열과 결과로 나오는 배열은 다른객체가 된다.
기존 배열 수정하지 않고 새로운 배열을 만들어 낸다.
즉 map 함수는 --> arr의 값을 하나씩 불러와 thisArg 값에 맞게 실행한 후 새로운 배열 보내는 것이다.
프로그래머스 코딩테스트에서 리뷰했던 문제이다.
function solution(a, b) {
var answer = 0;
for(let i = 0; i < a.length; i++) {
answer += a[i]*b[i]
}
return answer
}
for문을 돌려 a,b의 내적을 구하는 문제이다.
(https://school.programmers.co.kr/learn/courses/30/lessons/70128)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이 문제를 팀원 중 한 분께서 map함수를 이용하여 구현하셨는데 매우 인상적이었다!
function solutin (a,b) {
return(a.map((cur.i) => cur*b[i])).reduce((a,b) => a+b)
}
for문을 사용하여 a의 길이만큼 도는 부분을 map함수로 표현했다.
내가 수기로 적은 부분 중 arr에 a를 넣어주었다
배열 내에서 현재 처리해야하는 값을 cur로 잡아주고, 처리해야하는 i라는 index를 설정했다.
이렇게 되면 --->>a의 값을 하나씩 불러와서 i와 1;1로 짝지어 cur이라는 함수에 넣어준다.
이후 문제에서 요구한대로 a[n]*b[n]을 해줘야 하기에 cur*b[i]를해준다
cur에는 이미 a[i]가 들어가 있는 상태 !!
map함수와 조금 더 친해지고 정확한 사용법이 익게 되면 코드를 훨씬 간단하고 짧게 짤수 있을것 같다