유데미 함수 연습문제 기록

하영·2024년 6월 8일
0

JavaScript

목록 보기
3/29

함수 강의를 들으면서 기본적인 문제들을 풀어보았는데 기록하면서 복습하면 조금 더 이해되고 또 사용할 수 있을 것 같아서 간단하게 남겨보려한다.

유데미 함수 연습문제

문제 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;
	}
}
  1. splice가 아닌 slice()로 입력된 초기 문자열에서 첫글자만 빼주는 것.
  2. toUpperCase(), toLowerCase()의 위치 헷갈리지 말고 쓰자

문제 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;
}
  1. 전체값을 나타내는 total 변수의 위치를 다시 보자
  2. for문으로 성공했다면 for of문으로 더 간단하게 나타낼 수 있으니 꼭 익혀두기

문제 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];
}
  1. 변수를 맨 위로 빼지 말고 함수 안에 지정해서 함수가 실행되면 요일도 찾을 수 있게 만들기
  2. 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];
    }
}
  1. 배열에 담기면 0,1,2,3으로 고유 숫자가 부여되는 걸 활용
  2. 1부터 넣을 수 있게 만들었는데 실제 배열에서는 0이 첫번째이므로 -1 해주기.
profile
왕쪼랩 탈출 목표자의 코딩 공부기록

0개의 댓글

관련 채용 정보