코딩테스트

코딩테스트 풀이 - 순서 바꾸기 | slice, 스프레드문법

히새 2023. 12. 4. 16:54

 

문제를 이해하기가 살짝 어려웠는데 예시를 보고 이해가 되었다.!

n 을 기준으로 배열 순서 앞 뒤를 바꿔달라는 거잖아! 말을 왜이렇게 어렵게 하고그래

 

 

slice 를 사용해서 배열을 잘라주고

잘라준 배열을 스프레드 문법을 사용해서 쉽게 합쳐주었다!

빈 배열에 push 를 해서 넣지 않고 ES6 신상 사용 완료.

 


🎈 스프레드 문법

 

스프레드 문법 ( 전개 문법 ) ...은 하나로 뭉쳐 있는 여러 값들의 집합을 펼쳐서 개별적인 값들의 목록으로 만든다.

Array, String, Map, Set, Dom 컬렉션, arguments 와 같이 for ... of 문으로 순회할 수 있는 이터러블에 한정된다.

 

// 배열
console.log(...[1, 2, 3]); // 1 2 3

// 문자열
console.log(...'Hello'); // H e l l o

// Map과 Set
console.log(...new Map([['a', '1'], ['b', '2']])); // [ 'a', '1' ] [ 'b', '2' ]
console.log(...new Set([1, 2, 3])); // 1 2 3

// 이터러블이 아닌 일반 객체
console.log(...{ a: 1, b: 2 });
// TypeError: Found non-callable @@iterator

 

Rest 파라미터와의 차이점

Rest 파라미터 Spread 문법
함수에 전달된 인수들의 목록을 배열로 전달받기 위함 . 여러 개의 값이 하나로 뭉쳐 있는 배열과 같은 이터러블을 펼쳐서 개별적인 값들의 목록을 만드는 것
나머지 값을 뭉치기 뭉친 값을 풀어주기

 

// Rest 파라미터
function foo(...rest) {
  console.log(rest); // 1, 2, 3 -> [ 1, 2, 3 ]
}

// 스프레드 문법
// [1, 2, 3] -> 1, 2, 3
foo(...[1, 2, 3]);