코플릿 - 배열

soheey·2021년 8월 5일
0

배열 1번

function getType(anything) {
  if(Array.isArray(anything) === true) {
    return 'array';
  }
  if(anything === null) {
    return 'null';
  }
  return typeof(anything);
}

배열 8번

function getLargestElement(arr) {
  let max = arr[0];
  for(let i = 0; i < arr.length; i++) {
    if(max < arr[i]) {
      max = arr[i];
    }
  }
  return max;
}
function getLargestElement(arr) {
  let max = arr[0];
  for (let el of arr) {
    if (el > max) {
      max = el;
    }
  }
  return max;
}

배열 9번

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

배열 13번(배열 합치기)

function mergeArrays(arr1, arr2) {
  return arr1.concat(arr2);
}

배열 18번
주소값 동일

function removeFromFront(arr) {
   arr.shift();
   return arr;
   }

주소값 다름

function removeFromFront(arr) {
  return arr.slice(1);
}

배열 21번

function addToBackOfNew(arr, el) {
  let newArr = arr.slice(); //slice는 주소값이 다르기 때문에
  newArr.push(el);
  return newArr;
}

배열 23번

function getAllElementsButNth(arr, n) {
  if(n > arr.length) {
    return arr;
  }
  arr.splice(n, 1); // (삭제할 index, 삭제할 개수)
  return arr;
}
function getAllElementsButNth(arr, n) {
  let newArr = [];
  for(let i = 0; i < arr.length; i++) {
    if(i !== n) {
      newArr.push(arr[i])
    }
  }
  return newArr;
}

배열 25번

function fibonacci(num) {
  let fibNum = [];
  for (let i = 0; i <= num; i++) { 
  // i <= num인 이유는, i가 2인 경우를 넣어줘야 newArr[i - 2 → 0] + newArr[i - 1 → 1] 때문
    if (i === 0) {
      fibNum.push(0);
    } else if (i === 1) {
      fibNum.push(1);
    } else {
      fibNum.push(fibNum[i - 2] + fibNum[i - 1]); // i가 2일 때 부터
    }
  }
  return fibNum;
} 
// 최소한 두 개는 있어야 더할 수 있기 때문에 i가 0, 1인 경우는 그냥 push
// cf. arr[-1]은 undefined

0개의 댓글

관련 채용 정보