
오늘도 코테를 풀던 중 다른사람의 풀이를 보고 영감을 받아 확실히 기억 해 놓고자 글을 남긴다. map과 reduce가 콜백함수가 있어 배열을 다루는 코테 문제들에선 상당히 유용하게 쓰일 것 같다.
map은 말그대로 배열의 요소들을 순회하며 mapping 시켜준다.
사용 형태는 다음과 같다.
let arr = [1, 2, 3, 4];
arr.map((element, index, array) => {
return element + 1; // 각 요소에 1을 더한 값이 return된다
})
특정 배열에 대한 순회를 하며 파라미터로 요소, 인덱스, 배열 전체를 가질 수 있고, 순회하며 각 배열에 대한 수행을 콜백함수에 정의할 수 있다.
※ 그리고 map 함수는 기존 배열을 수정하지 않는다.
reduce 함수는 누적값이 포함된다.
let arr = [1, 2, 3, 4];
arr.reduce((acc, cur, index) => {
return acc + cur; // 10 return
}, 0)
파라미터로 누적값, 현재값, 인덱스 그리고 콜백함수와 초기값을 설정한다.
function solution(name, yearning, photo) {
var answer = [];
photo.map((e) => {
let sum = e.reduce((acc, cur) => {
let i = name.indexOf(cur);
if (i != -1) {
acc += yearning[i];
}
return acc;
}, 0)
answer.push(sum);
})
return answer;
}