<내 풀이>
Data1 : winter score 44, 23 and 71 , halfMoon score 65,54 and 49
Data2 : winter score 85, 54 and 41 , halfMoon score 23, 34 and 27
Arrow Function --> const function Name = (Parameter) => expression(value)
1. 조건 두 팀간의 스코어가 2배이상 차이날 경우에만 승자가 존재, 그렇지 않으면 이기는 팀은 없음.
2. Arrow Function 사용해보기
const calcAverage = (score) => score / 3;
주어진 데이터를 어떻게 넣을지 몰라서 socre라는 매개변수를 주었는데 reference code를 보니 굳이 score 보다는 a, b, c 로 주는게 더 직관적인거 같다.
const winterAverage = calcAverage(85 + 54 + 41);
const halfMoonAverage = calcAverage(23 + 34 + 27);
console.log(winterAverage);
console.log(halfMoonAverage);
const teamAverage = function (winter, halfMoon) {
return (winterAverage + halfMoonAverage) / 2;
};
const result = teamAverage(winterAverage, halfMoonAverage);
// console.log(result);
const checkWinner = function (winter, halfMoon) {
if (winterAverage >= halfMoonAverage * 2 && winterAverage > halfMoonAverage) {
return `winter win ${winterAverage} vs ${halfMoonAverage}`;
조건에 이미 witnerAverage >= haflMoonAverage * 2을 주었는데 나는 왜인지 코드를 작성할떄는 winterAverage > halfMoonAverage 라는 조건을 한번더 충족해야 될꺼같다고 생각해서 &&(and) 연산자를 한번더 써주었는데 필요없는 조건이다. 아래도 동일하게 작성해서 코드만 길어졌다.
} else if (
halfMoonAverage >= winterAverage * 2 &&
halfMoonAverage > winterAverage
) {
return `halfMoon win ${halfMoonAverage} vs ${winterAverage}`;
} else {
return "No team wins!";
}
};
const winner = checkWinner(winterAverage, halfMoonAverage);
console.log(winner);
<Reference code>
두번의 데이터조건을 충족시켜야 하기때문에 재할당이 가능한 let을 써주었다. 내가 작성할땐 score값을 일일히 하드코딩해서 콜솔을 찍어보았다.
또 한 바로 console에 안찍어보고 const reusl = 형태로 변환하여 출력하는 이유는 아직 내가 이 방식이 익숙치 않아 연습하기 위해 쓰는 중이다.
const calcAverage = (a, b, c) => (a + b + c) / 3;
//한줄의 Allow Function 은 return을 작성해 주지 않아도 된다.
// console.log(calcAverage(44, 23, 71));
let scoreWinter = calcAverage(44, 23, 71);
let scoreHalfMoon = calcAverage(65, 54, 49);
// 재할당 위해 let 으로 바꾸자
console.log(scoreWinter, scoreHalfMoon);
const checkWinner = function (avgWinter, avgHalfMoon) {
if (scoreWinter >= scoreHalfMoon * 2) {
console.log(`winter win ${scoreWinter} vs ${scoreHalfMoon}`);
} else if (scoreHalfMoon >= scoreWinter * 2) {
console.log(`halfMoon win ${scoreHalfMoon} vs ${scoreWinter}`);
} else {
console.log("No team wins!");
}
};
checkWinner(scoreWinter, scoreHalfMoon);
// Data2 : winter score 85, 54 and 41 , halfMoon score 23, 34 and 27
scoreWinter = calcAverage(85, 54, 41);
scoreHalfMoon = calcAverage(23, 34, 27);
console.log(scoreWinter, scoreHalfMoon);
checkWinner(scoreWinter, scoreHalfMoon);
현재 수강하고 있는 강의는 유데미에 있는
The Complete JavaScript Course 2022: From Zero to Expert!
라는 강의다 초보자부터 배울 수 있게 고안된 강의인 만큼 값만 나오면 일단 그 코드는 옳은 코드라며 걱정하지 말라고 위로를 많이해주는데 아직 이런간단한 함수식을 작성하는데도 많은 어려움이 있다. 강의가 매우 세세하게 가르쳐 주어서 많은 도움이 되고있고 언젠간 나도 막힘없이 코드를 작성 할 수 있는 날이 오길 간절히 원한다.