
문제를 이해하기가 살짝 어려웠는데 예시를 보고 이해가 되었다.!
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]);
'코딩테스트' 카테고리의 다른 글
코딩테스트 풀이 - rny_string | replaceAll() (1) | 2023.12.04 |
---|---|
코딩테스트 풀이 - 배열의 원소만큼 추가하기 | map (1) | 2023.12.04 |
코딩테스트 풀이 - 배열에서 문자열 대소문자 변환하기 | for문 if문 풀이, forEach문 풀이, map 풀이 (1) | 2023.12.01 |
코딩테스트 풀이 - 특정한 문자를 대문자로 바꾸기 (0) | 2023.12.01 |
코딩테스트 풀이 - 홀짝 구분하기 | node.js , 템플릿 리터럴 Template literal, 반환과 출력의 차이 (0) | 2023.12.01 |