나의 풀이
function solution(arr) {
var answer = 0;
for(let i=0; i<arr.length; i++){
answer += arr[i];
}
return answer/arr.length;
}
다른 사람의 풀이
function average(array){
return array.reduce((a, b) => a + b) / array.length;
}
생각나는게 for문 밖에 없어서 for문 이용해서 문제 풀고 나니까
다른 사람들 풀이 중에 reduce로 문제 푼 방식이 있길래 reduce에 대해 찾아봤다
reduce()
배열의 각 요소를 순회하며 콜백함수의 실행 값을 누적한 합산 값을 반환한다
arr.reduce(callback[, initialValue])
callback 함수가 가지는 4가지 인수
- accumulator 반환값 누적 [필수]
initalValue를 설정했을 경우 최초 호출 시 initalValue 값을 제공, 설정하지 않았을 경우 초기값은 배열의 첫번째 요소
- cuurentValue 배열의 현재 요소, 처리할 현재 요소 [필수]
initalValue 값을 제공하는 경우 초기값은 배열의 첫번째 요소, 제공하지 않았을 경우 초기값은 배열의 두번째 요소
- currentIndex 배열의 현재 요소의 인덱스, 처리할 요소의 인덱스
- array reduce()를호출한 배열
initialValue
- callback의 최초 호출에서 첫 번째 인수(accumulator 인수)에 제공 되는 값
initalValue를 제공하지 않은 경우 함수의 첫 번째 인수는 배열의 첫 번째 요소를 사용
initalValue 설정 안 했을 때
const num = [10, 20, 30, 40, 50];
const value = num.reduce((acc, cur, index, arr) => {
console.log(acc);
console.log(cur);
console.log(index);
console.log(arr);
return acc + cur;
});
console.log(value); // 150
설정하지 않았기 때문에 배열의 첫번째 요소를 첫번째 인수로 사용
10부터 시작하여 현재 누적값 10 다음값 20 인덱스[1]
10부터 시작하여 현재 누적값 30 다음값 30 인덱스[2]
...
10부터 시작하여 현재 누적값 100 다음값 50 인덱스[4]
initalValue 설정할 때
const num = [10, 20, 30, 40, 50];
const value = num.reduce((acc, cur, index, arr) => {
console.log(acc);
console.log(cur);
console.log(index);
console.log(arr);
return acc + cur;
}, 100);
console.log(value); // 250
initalValue 100으로 시작해서 현재 누적값 100 다음값 10 인덱스[0]
initalValue 100으로 시작해서 현재 누적값 110 다음값 20 인덱스[1]
...
initalValue 100으로 시작해서 현재 누적값 200 다음값 50 인덱스[4]
이런식으로 진행 됨
예시
var total = [0, 1, 2, 3].reduce(
(accumulator, currentValue) => accumulator + currentValue,
0
);
const num = [10, 20, 30, 40, 50];
const value = num.reduce((a, b) => {
return a + b;
});
console.log(value); // 150
'Dev. > Algorithm Prac' 카테고리의 다른 글
프로그래머스 [JavaScript] Lv.0 :: 종이자르기 (0) | 2022.11.30 |
---|---|
프로그래머스 [JavaScript] Lv.1 :: 자연수 뒤집어 배열로 만들기 (0) | 2022.11.22 |
Python :: 함수 예제 (0) | 2022.07.19 |
python :: dictionary 기초예제/ 학생관리 프로그램 (0) | 2022.07.14 |
파이썬 while문 연습예제 (0) | 2022.07.05 |
댓글