[프로그래머스 코딩테스트JavaScript Level 1] 평균 구하기
forEach 구문을 써서 arr 배열안의 원소 (ele) 를 += 계속 더해서 answer 변수 안에 넣고 arr.length로 나눴다.
맞은게 신기하다.....
다른 사람들의 풀이를 보는데 진짜 다양하다. 똑같은 문제인데 다양한 풀이가 있어서 뭔가 더 재밌ㄴ다
reduce를 사용한 다른 사람 코드
reduce 예전에 배웠는데 지금 기억이 가물가물치
다시 찾아보니 .reduce() Method 는 4개의 매개 변수 parameters를 가진다.
축적값(acc) , 현재 값(curr), 현재 인덱스(index), 원본 배열(arr)
축적값 accumulator = acc
현재값 current value 인 것 같다
다시 저 코드를 보니 매개변수 (a,b)는 acc, curr 로 쓰인 것 같다. a는 축적되는 값, b는 현재 값 (배열의 각각의 값을 forEach처럼 주는 듯 )
연습
const array = [100,200,300,400];
const sum = array.reduce((acc,curr)=>{
return acc + curr;
})
console.log(sum);
.reduce() Method = 배열의 각 요소에 주어진 reducer 함수를 실행하고 하나의 결과값을 반환
forEach처럼 각 요소를 for 돌리는..
처음 -> acc = 비어있음 + curr 100 ==> return 100 -> 틀림 아래 설명
두번째-> acc = 100 + curr 200 ==> return 300
세번째-> acc= 300 + curr 300 ==> return 600
네번째-> acc= 600 + curr 400 ==> return 1000
값 -> 1000 return
그럼 index와 array 부분 은 언제쓰지?
const array = [100,200,300,400];
const sum = array.reduce((a,b,c)=>{
console.log( a + b);
console.log(c)
return a+b;
})
console.log(sum);
const array = [100,200,300,400];
const sum = array.reduce((a,b,c)=>{
console.log(c)
console.log(a+'+'+b+'='+ (a + b));
return a+b;
})
console.log(sum);
첫번째 돌릴 때 acc 변수값에 아무것도 없어서 첫번째 요소 100을 넣는구나를 알 수 있음..
즉,
첫번쨰 -> acc=100 + curr 200 = return 300
두번쨰 -> acc=300 + curr 300 = return 600
세번쨰 -> acc=600 + curr 400 = return 1000
배열 요소 4개일 때 축적값 없음으로 3번 for 돌아감
reduce공부하고 다시 평균구하기 문제를 보고 풀어보기
function solution(arr) {
let a = arr.reduce((a,b)=>{
return a+b
})
return a/arr.length;
}
=>{ } 안에 return 이 없어야 {} 제거가 가능
function solution(arr) {
return arr.reduce((a,b)=>a+b)/arr.length;
}
=========================================================================
질문
reduce ((acc,curr) => {} 에서 acc, curr 이름은 아무거나 써도 되는지? 자리는 4개인데 두개만 쓰면 어떤건지 어떻게 아는지
된다
const array = [100,200,300,400];
const sum = array.reduce((a,b)=>{
return a + b;
})
console.log(sum);
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스 코딩테스트JavaScript] Level1-6. 완주하지 못한 선수 (0) | 2021.05.17 |
---|---|
[프로그래머스 코딩테스트JavaScript] Level1-5. 가운데 글자 가져오기 substr, substring 차이 / 문자열 글자 가져오기 (0) | 2021.05.16 |
[프로그래머스 코딩테스트JavaScript] Level1-4. 같은 숫자는 싫어 (0) | 2021.05.16 |
[프로그래머스 코딩테스트JavaScript] Level1-3. 서울에서 김서방 찾기 (0) | 2021.05.16 |
[프로그래머스 코딩테스트JavaScript] Level1-1. 짝수와 홀수 (0) | 2021.05.16 |