반응형

숫자 혹은 배열이 들어올 때, 항상 동일하게 배열로 만들어주는 방법을 알아보자

 

let a = 1;
let b = [1,2,3]

가 있을 때 아래처럼 변환 되도록 만들기

let c = [...a] 혹은 let c = [...b]

 

아래 코드처럼 만약 현재 들어오는 variable가 배열이면 return variable을 해도 되지만, 기존 오브젝트와 다른 deep copy된 배열을 얻기 위해선 spread syntax를 이용하여 복사해준다.

function makeArray(variable) {
  if (Array.isArray(variable)) {
    return [...variable];
  } else {
    return [variable];
  }
}

 

let a = 1;
let b = [1, 2, 3];

let c = makeArray(a); // [1]
let d = makeArray(b); // [1, 2, 3]

 

조금 더 js에 맞는 코드로 만들기 위해서는

 

Array.from() 메소드를 사용하여 배열로 변환할 수 있다.

이 메소드는 배열 형태의 객체나 이터러블 객체를 배열로 변환해준다.

그리고 Array.of() 메소드를 사용하여 값 하나만으로 배열을 생성할 수 있다.

function makeArray(variable) {
  return Array.isArray(variable) ? Array.from(variable) : Array.of(variable);
}

 

let a = 1;
let b = [1, 2, 3];

let c = makeArray(a); // [1]
let d = makeArray(b); // [1, 2, 3]

 

반응형