위코드에서 한시간동안 자바스크립트 중간 시험을 봤는데, 총 5문제가 주어졌다. 그것들을 한번 정리해 보려고 한다.
1) 짝수인지 판별하는 함수 is_even을 작성 주세요.
console.log(is_even(11)) // --> "짝수가 아닙니다"
console.log(is_even(10)) // --> "짝수 입니다"
function isEven(num) { return (num % 2) ? "짝수가 아닙니다" : "짝수 입니다"; }
삼항연산자를 이용해서 num을 2로 나눈 나머지를 조건문으로 해서 짝수와 홀수를 구분해서 해결하였다.
2) "getPrefix" 함수를 작성하세요.
문자열이 주어졌을때, "-"를 기준으로 앞에 있는 문자열을 반환하는 문제
console.log(getPrefix('BTC-KRW')) // --> BTC
function getPrefix(str) { const arr = str.split('-'); return arr[0]; }
BTC-KRW를 split으로 '-' 기준으로 배열로 만들고 0번째에 있는 배열을 리턴하여서 문제 해결!!
3) "calculateTotal" 함수를 작성하세요.
팁과 세금을 제외한 식사값이 주어졌을때, "calculateTotal" 함수는 팁과 세금이 포함된 총 식사값을 반환
Notes:
세금은 9.5% 팁은 15% 로 계산하세요.
팁을 계산할때 세금을 포함하여 계산하지 마세요.
console.log(calculateTotal(20)); // --> 24.9
function calculateTotal(num) { const tax = (num * 9.5) / 100; const tip = (num * 15) / 100; return num + tax + tip; }
인자로 받은 num에 9.5를 곱하고 100으로 나누기 한 다음에 num + tax + tip을 하여 문제를 해결 하였다.
** 퍼센트 계산 = 전체값 X 퍼센트 ÷ 100
하지만 모델 솔루션은 더 짧게 잘 되어 있던거 같다.
4) "getFind" 함수를 작성하세요.
문자와 문자열이 주어졌을때,
"getFind" 함수는 주어진 문자열에서 주어진 문자가 나타나는 첫번째 위치를 반환
Notes:
문자열의 첫번째 문자는 인덱스 값 0 을 가집니다.
만약 문자열에 해당 문자가 여러번 나타나면,
첫번째로 나타나는 위치를 반환해야 합니다.
만약 문자가 문자열에 존재하지 않는다면, -1 을 반환해야 합니다.
indexOf 함수를 사용 X
const output = getFind('a', 'I am a hacker')
console.log(output) // --> 2
function getFind(index,str) { return (str.includes(index)) ? str.search(index) : -1 }
삼항연산자와 includes, search라는 메소드를 이용하여 문제를 하였다.
우선 I am a hacker 라는 문자열에 a라는 문자가 포함이 된다면 search를 이용해 a가 몇번째에 있는지 알려주고 그렇지 않다면 -1을 반환하게 해서 문제를 해결하였다.
5) find_longest_word 함수를 완성하여라
주어진 리스트안에 있는 단어중 가장 긴 단어를 찾을수 있도록 함수를 완성해주세요.
console.log(find_longest_word(["PHP", "Exercises", "Backend"]))
// --> "Exercises"
function find_longest_word(arr) { let maxLength = arr[0]; arr.forEach((item) => { if(item.length > maxLength.length) { maxLength = item; } }); return maxLength; }
maxLength라는 변수를 만들어서 그곳에 첫번째 배열 값을 넣고 반복문을 이용해서 maxLength보다 item.length가 더 크면 item을 maxLength에 넣고 반환해준다.