16. getAllElementsButFirst
- 배열을 입력받아 배열의 첫번째 요소를 제외한 배열을 리턴
- 배열의 첫번째 요소를 제외한 배열을 리턴
- 반복문(for, while) 사용은 금지
- 빈 배열을 입력받은 경우, 빈 배열을 리턴
function getAllElementsButFirst(arr) {
arr.shift();
return arr;
}
17. getAllElementsButLast
- 배열을 입력받아 마지막 요소를 제외한 배열을 리턴
- 마지막 요소를 제외한 배열을 리턴
- 반복문(for, while) 사용은 금지
- 빈 배열을 입력받은 경우, 빈 배열을 리턴
function getAllElementsButLast(arr) {
arr.pop();
return arr;
}
18. removeFromFront
- 배열을 입력받아 배열의 첫번째 요소가 삭제된 배열을 리턴
- 배열의 첫 번째 요소를 삭제한 배열을 리턴
- 새로운 배열을 선언 / 할당해서 리턴X
- 기존 배열에 첫번째 요소가 삭제된 배열(주소값 동일)을 리턴
function removeFromFront(arr) {
arr.shift();
return arr;
}
19. removeFromBack
- 배열을 입력받아 배열의 마지막 요소를 삭제한 배열을 리턴
- 배열의 마지막 요소를 삭제한 배열을 리턴
- 새로운 배열을 선언 / 할당해서 리턴X
- 기존 배열에 첫번째 요소가 삭제된 배열(주소값 동일)을 리턴
function removeFromBack(arr) {
arr.pop();
return arr;
}
20. removeFromBackOfNew
- 배열을 입력받아 배열의 마지막 요소가 제외된 새로운 배열을 리턴
- 새로운 배열(주소값 다름)을 리턴
- 입력받은 배열을 수정하지 않아야 합니다
function removeFromBackOfNew(arr) {
return arr.slice(0, arr.length-1);
}
21. addToBackOfNew
- 배열과 요소를 입력받아 새로운 요소가 추가된 새로운 배열을 리턴
- 새로운 배열(주소값 다름)을 리턴
- 입력받은 배열을 수정하지 않아야 합니다
function addToBackOfNew(arr, el) {
return arr.concat(el);
}
22. addToFrontOfNew
- 배열과 요소를 입력받아 맨앞에 새로운 요소가 추가된 새로운 배열을 리턴
- 새로운 배열(주소값 다름)을 리턴
- 입력받은 배열을 수정하지 않아야 합니다
function addToFrontOfNew(arr, el) {
let a = [el];
return a.concat(arr);
}
23. getAllElementsButNth
- 배열과 인덱스를 입력받아 해당 인덱스의 요소를 제외한 배열을 리턴
- 인덱스에 해당하는 요소를 제외한 배열을 리턴
- 배열의 길이보다 큰 인덱스를 입력받은 경우, 배열 그대로를 리턴
function getAllElementsButNth(arr, n){
let new_arr = [];
for(let i of arr){
if ( i !== arr[n])
new_arr.push(i);
}
return new_arr;
}
24. createPhoneNumber
- 0-9 사이의 정수를 요소로 갖는 배열을 입력받아 전화번호 형식의 문자열을 리턴
- string 타입을 리턴
- 반복문(for, while) 사용은 금지
- 배열의 길이가 8인 경우, 앞에 [0, 1, 0]이 있다고 가정
function createPhoneNumber(arr) {
//1. arr의 길이가 8이면 앞에 (010)를 붙이고 slice를 사용해서 나눠 준다.
// 배열을 arr.slice(0, 4)할 경우 0~ 3 인덱스 위치까지 배열 형태 그대로 나오게 된다.
// 그러므로 join('')을 이용하여 배열의 요소를 하나의 문자열로 만들어 준다.
if( arr.length === 8){
return `(010)${arr.slice(0, 4).join('')}-${arr.slice(4,arr.length).join('')}`;
}
else { //2. 그 외도 위와 같은 방식으로 처리한다.
return `(${arr.slice(0, 3).join('')})${arr.slice(3, 7).join('')}-${arr.slice(7,arr.length).join('')}`;
}
}
// arr =[ 0, 1, 2] 일 경우
// + elements.join() output: "0,1,2"
// + elements.join('') output: "012"
// + elements.join('-') output: "0-1-2"
25. fibonacci
- 수(num)를 입력받아 num번째까지 총 num + 1개의 피보나치 수열을 리턴
- 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다. 그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의
- 배열을 리턴
- 반복문(for)문을 사용
- 피보나치 수열은 0번부터 시작
function fibonacci(num) {
// 1. num만큼 for문을 돌린다.
if( num === 0){
return [0]
}
let first = 0;
let second = 1;
let sum = 0;
let arr = [0, 1];
for(let i = 1 ; i < num ; i++){
sum = first + second
first = second;
second = sum;
arr.push(sum);
}
return arr;
}