중간시험 코드 리뷰

EJ__OH·2021년 11월 14일
0

Q1. 짝수인지 판별하는 함수 isEven을 작성.

function isEven(num) {
  if(num % 2 === 0){
    return "짝수 입니다."
  }else {
    return "짝수가 아닙니다."
  }
}

argument로 받은 num을 2로 나눈 나머지가 0일 때 "짝수 입니다."를 return하고 그렇지 않다면(2로 나눈 나머지가 1이라면) "짝수가 아닙니다."를 return.

Q2. calculateTotal 함수를 작성.

팁과 세금을 제외한 식사값이 주어졌을때, calculateTotal 함수는 팁과 세금이 포함된 총 식사값을 반환. Notes: 세금은 9.5%, 팁은 15%.

function calculateTotal(amount) {
  const tax = 0.095;
  const tip = 0.15;

  const taxTotal = amount * tax;
  const tipTotal = amount * tip;

  return amount + taxTotal + tipTotal
}

세금과 팁이 각각 9.5%, 15%니까 함수 안에 변수로 각각 선언, 할당해놓고 이후 argument로 받은 amount에 대한 세금과 팁을 각각 taxTotal, tipTotal 이라는 변수에 할당한 후 amount와 taxTotal과 tipTotal을 더한 값을 return.

Q3. 문자열이 주어졌을때, -를 기준으로 앞에 있는 문자열을 반환.

function getPrefix(str) {
  if(str.indexOf("-")){
    const idx = str.indexOf("-");
    return str.slice(0, idx)
  }
}

str이라는 argument로 문자열을 받고 조건문을 통해 만약에 str이라는 문자열에 -(hyphen)이 들어간다면 함수가 실행되게 하고 싶었다. 그래서 조건문에 hyphen이 들어간다면 조건문의 조건 부분이 truthy가 되기 때문에 조건문 안 부분이 실행되고 hyphen의 index를 idx라는 변수에 할당한 후 slice 메서드를 통해 str의 첫 글자부터 idx에 할당된 index 값 이전까지의 string을 return.

Q4. 문자와 문자열이 주어졌을때, 주어진 문자열에서 주어진 문자가 나타나는 첫번째 위치를 반환.

Notes: 만약 문자가 문자열에 존재하지 않는다면, -1 을 반환. indexOf 메서드 사용금지.

function getFind(filter, sentence) { 
  for(let i = 0; i < sentence.length; i++){
    if(sentence[i] === filter){
      return i;
    }
  }
  return -1;
}

filter이라는 argument에 문제조건의 문자가 들어가고 sentence라는 argument에 문제조건의 문자열이 들어간다고 했을 때 loop를 돌려서 filter를 sentence로 한 글자 by 한 글자로 돌리고 싶었다.
그래서 sentence에 들어가는 문자열의 length만큼 for문을 돌리고 만약 sentence에 들어가는 문자열 중에 filter에 들어가는 문자와 같은 글자가 있다면 i 안에 들어가있는 index를 return하고 for문을 돌렸는데도 filter와 맞지 않는 글자가 없어서 i를 return하지 못했다면 -1을 return.

Q5. 주어진 리스트안에 있는 단어중 가장 긴 단어를 찾을수 있도록 함수를 완성.

function find_longest_word(arr) {
  for(let i = 0; i < arr.length; i++){
    let longestWord;
    arr[i].length > arr[i+1].length? longestWord = arr[i] : longestWord = arr[i+1]
    return longestWord;
  }
}

배열 형식의 argument를 arr로 받고 반복문을 통해 arr의 i index의 값과 i+1 index의 값의 length를 비교하고 이미 선언된 longestWord라는 변수에 length가 더 긴 요소를 할당하고 반복문이 돌면 length가 가장 긴 요소가 longestWords 변수에 할당되고 그 변수를 return.

동기 중에 argument로 받은 arr이라는 배열을 sort 고차함수를 통해 length 순으로 나열하고 나열된 배열의 첫 번째 요소를 return하는 방식으로 푸신 분이 계신데 생각하기에 너무 멋지고 반짝이는 방식으로 푼 것 같아 sort 고차함수를 공부하고 싶어짐...곧 할거임...곧...진짜 곧...기다려라 sort

profile
Junior FE Developer

0개의 댓글