배열 Array 코플릿정리

돌리의 하루·2023년 1월 1일
0
post-thumbnail

🎈문제1

이 문제는 사실 for문으로 해결할 수 있는 간단한 문제다.
하지만 이 문제를 블로깅 하는 이유는 for문 말고도 스프레드 연산자로
아주 간단하게 만들 수 있기 때문이다.

function getAllLetters(str) {
  let arr = [];
  for (let i = 0; i < str.length; i++) {
    arr.push(str[i]);
  }
  return arr;
}

위처럼 for문으로 작성할때는 각각 배열에 push로 넣어주는 모습이지만,

function getAllLetters(str) {
  let result = [...str]
  return result;
}

스프레드 연산자를 이용하면 쉽고 간단하게 코드를 짤 수 있다.

🎈문제2

스프레드 연산자를 이용해서 쉽게 풀기 2222

function getLargestElement(arr) {
 let storage = arr[0];
for(el of arr){
  if(el > storage){
  storage = el
  		}
	}
 return storage;
}

위는 배열에 적용할 수 있는 for of 문으로 풀이를 작성했다.
이를 스프레드 연산자로 풀어보면 아래와 같다.

let result = Math.max(...arr)
return result;

🎈문제3

위의 문제는 내가 배열인걸 인지하지 못하고 배열을 담는 변수에 중간에 실수한 내용을 담고있다.

function getEvenNumbers(arr) {
  let storage = [];
  for(el of arr){//1,2,3,4
    if(el % 2 ===0){
     //storage += el 이라고 썼는데 이러면 storage 리턴값이 2108 처럼 
     //숫자가 이어져서 나옴 = 배열안에 안들어감 따라서 push를 써주기
     storage.push(el);
    }
  }
  return storage;
}

🎈문제4

function createPhoneNumber(arr) {
  //배열의 길이가 8보다 크면 끝에서 숫자 세서 slice
  //for문으로 돌게하고 if문으로 조건붙이기
  let first = arr.slice(0,3).join("")
  let second = arr.slice(-8,-4).join("")
  let third = arr.slice(-4).join("")
  if(arr.length === 8 ){
    first = '010'
  }  
    return `(${first})${second}-${third}`
    }

생소해서 헷갈렸던 문제다.
하지만 조건이 간단해서 조금만 더 생각하면 금방 풀 수 있는 문제다.
배열의 길이가 8인 경우의 예외만 생각해본다면 어렵지 않다.

profile
진화중인 돌리입니다 :>

0개의 댓글