행복을 담는 블로그
[프로그래머스] 배열의 합 구하기/ reduce( ) 메서드 본문
// 풀이 1
function solution(numbers) {
let array = numbers;
const result = array.reduce(function add(a,b){
return a+b;
})
return result/array.length;
}
// 풀이 2
function solution(numbers) {
var sum = 0;
for (i=0; i<numbers.length; i++){
sum = sum + numbers[i];
}
return sum / numbers.length;
}
💡 프로그래머스에서 배열의 평균을 구하는 문제를 풀었다.
for문을 이용해서 sum을 구하는 방식으로 시도하다가 for문 풀이 시도가 잘 되지 않아 다른 방법을 시도하다가 reduce() 메서드를 알게 되었다.
📌 Array.prototyep.reduce()
- reduce() method
: 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환한다.
즉, callback 함수의 일종이다.arr.reduce(callback[, initialValue])
(자세한 내용은 여기서 확인)
Array.prototype.reduce()
아무튼 reducer 함수를 실행하는 배열의 reduce() 메서드가 있지만,,,
오늘은 reduce 함수를 이용하여 배열의 합을 구하는 것을 해 보았다!
1. reduce () 메서드로 배열의 합 구하기
(출처 어제 오늘 내일 )
let array = [1,2,3];
const result = array.reduce(function add(sum, curValue){
return sum + curValue;
},0)
reduce() 함수의 parameter로 전달되는 callback 함수는 누적값(sum) 과 현재의 element(curValue)로 받는다.
이후 sum + curValue를 리턴하여 callback 함수의 누적값(sum)으로 전달된다.
✅ initialValue(초기값) 설정 (optional)
: 초기값 설정은 필수는 아니지만, 초기값을 설정하지 않은 채로 빈 배열(ex) array =[];)이 전달 될 경우, error가 발생한다.const arr = [ ]; const result = arr.reduce(function add(sum, currValue) { return sum + currValue; }); console.log(result); // ERROR
📌 reduce() 함수 간단하게 보기
// 1️⃣ 기본 표기 방법
let array = [1,2,3];
array.reduce(function add(a,b){return a+b;});
// 2️⃣ 화살표 함수로 변환하여 나타내기
array.reduce((a,b) => a+b);
// 3️⃣ 변수 설정하기
const arr = [1, 2, 3];
const result = arr.reduce(function add(sum, currValue) {
return sum + currValue;
}, 0);
2. reduce () 메서드로 배열의 평균 구하기
: reduce() 함수로 배열의 합을 구한 다음, 배열의 길이만큼 나눠주기!
function solution(numbers) {
let array = [1,2,3];
const result = array.reduce(function add(sum, curValue){
return sum + curValue;
},0);
return result/array.length; // 배열(array) 길이만큼 나누기
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 연습문제) 정수 내림차순으로 배치하기/ array.join( ) 메소드 (1) | 2024.01.15 |
---|---|
[프로그래머스] 연습문제) 자릿수 더하기 / split() 이용하여 배열 만들기 (1) | 2024.01.05 |