test-review

hazel's·2022년 4월 8일
0

TIL

목록 보기
1/2
post-thumbnail

1.짝수인지 판별하는 함수 isEven을 작성 주세요.

console.log(isEven(11)) // --> "짝수가 아닙니다."
console.log(isEven(10)) // --> "짝수 입니다."

제출


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

삼항연산자 사용

return num % 2 == 0 ? "짝수 입니다." : "짝수가 아닙니다.";

2.calculateTotal 함수를 작성하세요.

팁과 세금을 제외한 식사값이 주어졌을때, calculateTotal 함수는 팁과 세금이 포함된 총 식사값을 반환합니다.

Notes:

  • 세금은 9.5% 팁은 15% 로 계산하세요.
  • 팁을 계산할때 세금을 포함하여 계산하지 마세요.
console.log(calculateTotal(20)); // --> 24.9

제출

function calculateTotal(amount) {
 return amount + (amount * 0.095) +(amount * 0.15);
}

3.getPrefix 함수를 작성하세요.

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

console.log(getPrefix('BTC-KRW')) // --> BTC

제출

function getPrefix(str) {
  let result = str.split("-");
   return result[0];
}

slice를 쓰려고 했으나, 문자열 함수를 찾아 보니 split이라는 메서드를 찾게 되어 사용하였다.

4.getFind 함수를 작성하세요.

문자와 문자열이 주어졌을때, getFind 함수는 주어진 문자열에서 주어진 문자가 나타나는 첫번째 위치를 반환합니다.

Notes: 문자열의 첫번째 문자는 인덱스 값 0 을 가집니다. 만약 문자열에 해당 문자가 여러번 나타나면, 첫번째로 나타나는 위치를 반환해야 합니다. 만약 문자가 문자열에 존재하지 않는다면, -1 을 반환해야 합니다.

📍중요!! indexOf 함수를 사용하지 마세요.

제출

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

다른 방법


function getFind(filter, sentence) { 
 return sentence.search(filter)
}

사실 문자열에서 주어진 문자의 위치라고 해서 for문을 사용해서 filter가 배열 안에서 같은 문자가 있을때 해당되는 i를 반환해주고 아니면 -1을 리턴하였다. (문자열 === 주의!!)
더 검색해 볼 시간이 없어서 못했는데 search를 사용했다면 더 쉽게 했을거 같다.


5.find_longest_word 함수를 만들어 주세요.

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

console.log(find_longest_word(["PHP", "Exercises", "Backend"])) 
// --> "Exercises"

제출


function find_longest_word(arr) {
  let arrLength = arr.map(x => x = x.length);
  let maxArr = Math.max(...arrLength);
  let longest = arrLength.indexOf(maxArr);
  return arr[longest];
  
}

사실 처음에는 전에 최소값을 구했던 방식이랑 같은 longest 배열 변수 생성하고 for문 사용해서 arr.length와 longest.length를 if문으로 최대값을 찾아 냈지만, 문제를 for문 말고 다른 방법을 사용하고 싶어서 map을 찾아서 우선 숫자길이를 찾고 그리고 Math.max를 사용해서 가장 긴 숫자를 찾았는데 여기서 다시 문자열로 돌리는 방법을 한참 찾다가 동기분의 힌트로 indexOf 사용해서 다행히 풀수 있었다...

test를 보고 난 뒤에는 아직 풀 수 있는 방법의 영역이 한정적이라는 것을 느끼며, 여전히 자바스크립트에 대한 기본기가 부족함을 느꼈다. 그래도 map을 이용하려고 생각했던 점, split를 검색으로라도 찾아내서 대입한 점등이 오늘의 배움이었다!!!!그리고 책을 읽어서 자바스크립트에 쓰이는 방식을 좀 더 체계적으로 설명하고 싶다는 생각이 드는 하루였다...

profile
좋아하는 것을 하나하나 채워가면 행복해질꺼야

0개의 댓글