임의의 값을 입력받아 타입을 리턴해야 합니다.
주의 사항
자바스크립트에서 array, null 타입은 존재하지 않지만, 이 둘을 구분하여 출력합니다.
입출력 예시
let output = getType('hello');
console.log(output); // --> 'string'
output = getType(10);
console.log(output); // --> 'number'
output = getType(true);
console.log(output); // --> 'boolean'
output = getType({ name: 'Steve' });
console.log(output); // --> 'object'
output = getType([100, 200, 300]);
console.log(output); // --> 'array'
힌트
자바스크립트에서 타입을 확인하는 방법을 검색해 봅니다. how to typecheck in 자바스크립트
배열의 타입을 확인하면 "object" 입니다. 배열을 따로 구분할 수 있는 방법을 검색해 봅니다.
how to tell if an object is an array in 자바스크립트
내 풀이
function getType(anything) {
if(typeof anything === 'object'){
if(Array.isArray(anything)){
return 'array';
}
if(anything === null){
return 'null';
}
return typeof anything;
}
return typeof anything;
}
## **문제**
문자열을 입력받아 문자열에서 가장 긴 단어를 리턴해야 합니다.
## **입력**
### **인자 1 : str**
- `string` 타입의 공백이 있는 알파벳 문자열
## **출력**
- `string` 타입을 리턴해야 합니다.
## **주의 사항**
- 단어는 공백 한 칸으로 구분합니다.
- 가장 긴 단어가 2개 이상이면 첫번째로 등장하는 단어를 리턴해야 합니다.
## **입출력 예시**
let output = getLongestWord('I love codestates'); console.log(output); // --> "codestates"
output = getLongestWord('Teamwork skills will take you anywhere'); console.log(output); // --> "Teamwork"
내 풀이
let arr = str.split(' ');
let max = arr[0].length;
let x=arr[0];
for(el of arr){
if(el.length > max){
max = el.length;
x = el;
}
//길이 비교 필요
//첫번째 요소와 비교
}
return x;
}
## **문제**
0-9 사이의 정수를 요소로 갖는 배열을 입력받아 전화번호 형식의 문자열을 리턴해야 합니다.
## **입력**
### **인자 1 : arr**
- `number` 타입을 요소로 갖는 배열
- `arr[i]`는 0 이상 9 이하의 정수
- 배열의 길이는 8 또는 11
## **출력**
- `string` 타입을 리턴해야 합니다.
## **주의 사항**
- 반복문(`for`, `while`) 사용은 금지됩니다.
- 배열의 길이가 8인 경우, 앞에 `[0, 1, 0]`이 있다고 가정합니다.
## **입출력 예시**
let output = createPhoneNumber([0, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8]); console.log(output); // --> '(010)1234-5678'
output = createPhoneNumber([8, 7, 6, 5, 4, 3, 2, 1]); console.log(output); // --> '(010)8765-4321'
output = createPhoneNumber([0, 1, 1, 4, 3, 2, 1, 8, 7, 6, 5]); console.log(output); // --> '(011)4321-8765'
## **힌트**
- `Array.prototype.join`에 대해서 검색해 봅니다.
내 풀이
function createPhoneNumber(arr) {
//배열의 길이 : 8 - (010) slice 3-8 + slice 8-
//배열의 길이 : 11 - (0~2)
//reference 보기
let num = '(010)';
let slice0 = arr.slice(0,3);
let slice1 = arr.slice(3,7);
let slice2 = arr.slice(7);
if(arr.length === 8){
return num + arr.slice(0,4).join('')+'-'+arr.slice(4).join('');
}else if(arr.length === 11){
return '('+slice0.join('')+')'+ slice1.join('') + '-' + slice2.join('');
}
}
문제
수(num)를 입력받아 num번째까지 총 num + 1개의 피보나치 수열을 리턴해야 합니다.
0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다. 그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의합니다.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
입력
인자 1 : num
number 타입의 num (num은 0 이상의 정수)
출력
배열을 리턴해야 합니다.
주의 사항
반복문(for)문을 사용해야 합니다.
피보나치 수열은 0번부터 시작합니다.
입출력 예시
let output = fibonacci(5);
console.log(output[5]); // --> 5
output = fibonacci(9)[9];
console.log(output); // --> 34