[JavaScript] 배열 1~15번

유아현·2022년 11월 5일
0

JavaScript

목록 보기
9/25
post-thumbnail

1. getType

  • 임의의 값을 입력받아 타입을 리턴
  • string 타입을 리턴
function getType(anything) {
  // 1. 객체와 배열은 둘 다 object로 출력되므로, Array.isArray()를 사용하여 배열 타입을 먼저 리턴
  // 2. null 처리해 주기
  // 3. typeof로 하면 타입들이 'string' 'number'으로 나오니 나머지는 typeof로 처리
  if(Array.isArray(anything) === true){ // anything이 만약 배열이라면 
    return 'array';
  }
    else if (anything === null) {
      return 'null';
    }
  else {
    return typeof anything;
  }
}

2. getFirstElement

  • 배열을 입력받아 배열의 첫번째 요소를 리턴
function getFirstElement(arr) {
  // 배열의 첫번째 요소를 불러 오기 위해서 0번 째 위치를 리턴해 주면 된다.
  return arr[0]
}

3. getLastElement

  • 배열를 입력받아 배열의 마지막 요소를 리턴
function getLastElement(arr) {
  // 배열 arr의 길이를 구하여 -1 하면 마지막 요소를 출력할 수 있다.
  return arr[arr.length-1];
}

4. getNthElement

  • 배열과 수를 입력받아 수가 인덱스로 가리키는 배열의 요소를 리턴
  • 빈 배열을 입력받은 경우, undefined를 리턴
  • 배열의 길이를 벗어나는 수를 입력받은 경우, 'out of index range'를 리턴
function getNthElement(arr, index) {
  // 빈 배열을 받을 경우 undefined를 리턴
  if (arr.length === 0){
    return undefined;
  }

  // index의 수가 arr의 길이보다 크면 'out of index range'를 리턴
  if (index > arr.length-1){
    return 'out of index range';
  }
  // arr의 index 위치의 요소를 리턴
  return arr[index];

}

5. computeSumOfAllElements

  • 배열을 입력받아 배열의 모든 요소의 합을 리턴
  • number 타입을 리턴
  • 입력받은 배열이 빈 배열인 경우, 0을 리턴
function computeSumOfAllElements(arr) {
  let sum = 0;
  for(let i of arr){
    sum += i
  }
  return sum;
}

6. getAllWords

  • 문자열을 입력받아 문자열을 구성하는 각 단어를 요소로 갖는 배열을 리턴
  • 배열을 리턴
  • 반복문(for, while) 사용은 금지
  • 단어는 공백 한 칸으로 구분
  • 연속된 공백은 없다고 가정
function getAllWords(str) {
  if (str.length === 0){
    return str = [];
  }

  str = str.split(' ');
  return str;
}

7. getAllLetters

  • 문자열을 입력받아 문자열을 구성하는 각 문자를 요소로 갖는 배열을 리턴
  • 배열을 리턴
  • str.split 사용은 금지
function getAllLetters(str) {
  let arr = []

  for(let i = 0 ; i < str.length ; i++){
    arr.push(str[i]);
  }
  
  return arr;
}
  • str.split 사용한다면?
function getAllLetters(str) {
  return str.split("");
}

console.log(getAllLetters("Radagast"));

8. getLargestElement

  • 배열을 입력받아 가장 큰 요소를 리턴
  • number 타입을 리턴
function getLargestElement(arr) {
  let max = 0;

  for (let i = 0 ; i < arr.length ; i++){
    if ( arr[i] < arr[i+1]){
      max = arr[i+1];
    }
  }
  return max;
}

9. getLongestWord

  • 문자열을 입력받아 문자열에서 가장 긴 단어를 리턴
  • string 타입을 리턴
  • 단어는 공백 한 칸으로 구분
  • 가장 긴 단어가 2개 이상이면 첫번째로 등장하는 단어를 리턴
function getLongestWord(str) {
  str = str.split(' ');
  let long = str[0];
  for(let i = 0 ; i < str.length ; i++){
    if (long.length < str[i].length){
      long = str[i];
    }
  }
  return long;
}
  • for...of 사용
function getLongestWord(str) {
  //for of 사용하기

  str = str.split(' ');
  let max = str[0];
  for(let i of str){
    if( max.length < i.length){
      max = i;
    }
  }
  return max;
}

10. getEvenNumbers

  • 수를 요소로 갖는 배열을 입력받아 짝수만을 요소로 갖는 배열을 리턴
  • 배열을 리턴
  • 짝수가 없는 경우, 빈 배열을 리턴
function getEvenNumbers(arr) {
  let new_arr = [];
  for( let i of arr){
    if ( i % 2 === 0){
      new_arr.push(i)
    }
  }
  return new_arr;
}

11. addToFront

  • 배열과 요소를 입력받아 주어진 요소를 배열의 맨 앞에 추가하고 해당 배열을 리턴
  • 기존 배열에 주어진 요소가 추가된 형태의 배열을 리턴
  • 반복문(for, while) 사용은 금지
  • 새로운 배열을 선언 / 할당해서 리턴X
  • 기존 배열에 주어진 요소가 추가된 상태(주소값 동일)로 리턴
function addToFront(arr, el) {
  arr.unshift(el)
  return arr;
}

+ return arr.unshift(el)를 하게 될 경우, el만 가져 온다는 것을 헷갈리지 말자! 추가를 하고 배열을 리턴

12. addToBack

  • 배열과 요소를 입력받아 주어진 요소를 배열의 맨 뒤에 추가하고 해당 배열을 리턴
  • 기존 배열에 주어진 요소가 추가된 형태의 배열을 리턴
  • 반복문(for, while) 사용은 금지
  • 새로운 배열을 선언 / 할당해서 리턴X
  • 기존 배열에 주어진 요소가 추가된 상태(주소값 동일)로 리턴
function addToBack(arr, el) {
  arr.push(el)
  return arr;
}

13. mergeArrays

  • 두 개의 배열을 입력받아 순서대로 합쳐진 배열을 리턴
  • 두 배열이 합쳐진 새로운 배열을 리턴
  • [arr1[0], ..., arr1[n - 1], arr2[0], ..., arr2[m - 1]]
  • 반복문(for, while) 사용은 금지
function mergeArrays(arr1, arr2) {
  return arr1.concat(arr2)
}

14. getElementsAfter

  • 배열과 인덱스를 입력받아 주어진 인덱스 이후의 요소들을 갖는 새로운 배열을 리턴
  • n번 인덱스 이후의 새로운 배열을 리턴
  • 반복문(for, while) 사용은 금지
  • 빈 배열을 입력받은 경우, 빈 배열을 리턴
  • 배열의 길이 이상의 인덱스를 입력받은 경우, 빈 배열을 리턴
function getElementsAfter(arr, n) {
  return arr.slice(n+1,arr.length)
}

15. getElementsUpTo

  • 배열과 인덱스를 입력받아 주어진 인덱스 이전의 요소들을 갖는 새로운 배열을 리턴
  • n번 인덱스 이전의 새로운 배열을 리턴
  • 반복문(for, while) 사용은 금지
  • 빈 배열을 입력받은 경우, 빈 배열을 리턴
  • 배열의 길이를 넘는 인덱스를 입력받은 경우, 빈 배열을 리턴
function getElementsUpTo(arr, n) {
  if ( arr.length < n){
    return arr = []
  }
  return arr.slice(0, n)
}

0개의 댓글