길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.
이때, a와 b의 내적은 a[0]b[0] + a[1]b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이)
// function solution(a, b) {
// var answer = 0
// for(let i=0;i<a.length;i++){
// answer+=a[i]*b[i]
// }
// return answer
// }
for 문을 돌면서 같은 index끼리 곱한것을 답에 누적해 주었다.
function solution(a,b) {
return a.reduce((acc,cur,index)=>acc+cur*b[index],0)
}
- reduce는 배열 쭉 돌면서 return 하는 값은 acc에 누적되고 최종적으로는 하나의 값을 return 한다.
- 여기선 acc+cur*b[index]가 return되서 다음 요소돌 때 acc가 된다
- 인자는 누적값, 현재처리할요소, 인덱스, reduce를 호출한 배열을 가질 수 있다
- 만약 초기값을 0으로 세팅해 주지않으면 첫번째 배열의 요소가 acc로 설정 된다.
- 이경우에는 0으로 꼭 세팅해 줘야 원하는 결과값을 가질 수 있다.