[JavaScript] 배열 16~25번

유아현·2022년 11월 6일
0

JavaScript

목록 보기
10/25
post-thumbnail

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;
}

0개의 댓글