// solution 1 : for()/ push()
function solution(num_list) {
let reverse = [];
for(let i = num_list.length -1; i >= 0; i--){
// 맨 앞에 null값이 존재하기 때문에 num_list.length -1을 해 null 삭제
reverse.push(num_list[i]);
}
return reverse;
}
for문을 이용한 배열 뒤집기
전제 조건인 i를 숫자의 길이로 설정한 후 맨 앞에 null값이 존재하기 때문에 -1을 해 null을 삭제한다.
i가 0보다 크거나 같을 때 i를 내림차순으로 돌려준다.
그 다음 선언해둔 reverse 배열에 num의 i번째 값을 넣어 준 후 리턴한다.
// solution 2 : reverse()
const solution = (num_list) => num_list.reverse()join('');
}
reverse() 메서드를 사용한 배열 뒤집기
.reverse() 메서드를 통해 배열을 반전 시킨다.
.join('')으로 ''를 기준으로 합쳐 주며 ''를 제거한다.
// solution 3 : reverse(), spead 깊은 복사(원본배열 살아 있음)
const solution = (num_list) => [...num_list].reverse();
spead 메서드를 사용한 문자열 뒤집기
원본의 배열값을 그대로 두고 리턴값만 변경하고 싶어 연습해 보았다.
// solution 4 : sort()
const solution = (num_list) => num_list.sort((a, b) => -1);
sort() 메서드를 사용한 문자열 뒤집기
sort()를 이용해 문자를 내림차순으로 뒤집는데, 원래는 sort((a,b) => b-a)로 정렬하나, 세번째 케이스인 [5,3,1,1,1,0,1]의 경우에서는 마지막0이 1보다 앞에 배치되어야 하기 때문에 -1로 설정한다.
사용한 메서드
[...Array]
: 원본의 배열값을 그대로 두고 리턴값을 변경하고 싶을때 spead연산자를 통해 배열을 복사함(원본 배열은 변경 X)
Array.reverse()
: 배열의 순서를 뒤집어 반환(원본 배열이 변형)
Array.join('')
: 배열의 모든 요소를 연결해 하나의 문자열로 만듬, separator를 생락하면 쉼표(, ) 로 구분된다.
(출처 : String.prototype.split())
(출처 : Array.prototype.join())
(출처 : Array.prototype.sort())
(출처 : Array.prototype.reverse())
const solution = (num_list) => num_list.sort((a, b) => -1);
이렇게 화살표 함수를 사용하여 한줄로 코드를 깔끔하게 적을 수도 있다.