함수 강의를 들으면서 기본적인 문제들을 풀어보았는데 기록하면서 복습하면 조금 더 이해되고 또 사용할 수 있을 것 같아서 간단하게 남겨보려한다.
유데미 함수 연습문제
문제 1. 배열의 마지막 요소 찾기
function lastElement(arr) {
if (arr.length === 0) {
return null
} else {
return arr[arr.length - 1]; //-1을 해주면 0부터 시작해서 마지막값은 찾을 수 없으므로 undefined 뜸
}
}
문제 2. 문자열의 첫번째만 대문자로 변환
❌ 내가 쓴 답안
function capitalize(txt) { //apple 입력
const firstTxt = txt[0].toUpperCase(); // A
const lastTxt = txt.splice(1);
return firstTxt + lastTxt;
}
✅ 정답
function capitalize(word) {
const firstLetterCapitalized = word[0].toUpperCase();
const restOfTheString = word.slice(1);
return firstLetterCapitalized + restOfTheString;
}
}
문제 3. 배열 합계 연습
❌ 내가 쓴 답안
function sumArray(nums) {
let total = 0;
for (let i = 0; i < nums.length; i++) {
//let total = 0; 여기에 쓰면 total is not defined이 뜨겟져?
total += nums[i];
}
return total;
}
✅ 정답
function sumArray(nums) {
let total = 0;
for (num of nums) {
total += num;
}
return total;
}
문제 4. 숫자 입력하면 그에 맞는 요일 출력하기
1. 요일을 배열로 담아서 변수에 저장
2. returnDay
라는 함수 생성
3. 매개변수가 1보다 작거나 7보다 크면 null 값 반환.
4. 숫자를 적으면 요일 배열에서 순서에 맞게 출력하기 (ex. 1 >> Monday, 2 >> Tuesday)
❌ 내가 쓴 답안 1
const days = [
'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'
]
function returnDay(idx) {
if (idx < 1 || idx > 7) {
return null;
} else {
return days[0] + 1;
}
}
null 까지는 성공했는데 계속 4번을 어떻게 풀어야할지 머리가 안 돌아감...
❌ 내가 쓴 답안 2
const days = {
1: 'Monday',
2: 'Tuesday',
3: 'Wednesday',
4: 'Thursday',
5: 'Friday',
6: 'Saturday',
7: 'Sunday'
}
function returnDay(idx) {
if (idx < 1 || idx > 7) {
return null;
} else {
return days.Object.values;
}
}
힌트받아서 다시 써 본 코드..
키값 주고 그에 맞는 답?을 얻어냈던게 생각나서 적어봤는데 이것도 실패~
✅ 정답 1
function returnDay(idx) {
if (idx < 1 || idx > 7) {
return null;
}
const days = {
1: 'Monday',
2: 'Tuesday',
3: 'Wednesday',
4: 'Thursday',
5: 'Friday',
6: 'Saturday',
7: 'Sunday'
};
return days[idx];
}
✅ 정답 2
function returnDay(num) {
const days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
if (num < 1 || num > 7) {
return null;
} else {
return days[num - 1];
}
}