자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
우선 자연수를 뒤집을려면 또 쪼개야 한다.
그럴려면 tostring과 split을 사용하면 되고,
뒤집을려면 배열을 뒤집을 수 있는 함수가 있을것이다.
구글링을 하니 reverse라는 함수가 나온다.
그래 그러면 reverse함수를 써보자!
reverse 메서드는 호출한 배열을 반전하고 원본 배열을 변형하며 그 참조를 반환합니다.
하니면 반복문을 사용하면 뒤에서부터 출력하는 방법도 있다.
다양한 방법을 시도해보았다.
function solution(n) {
var reverse = [];
let result = n.toString()
for (let i = result.length-1; i >= 0; i-- ){
reverse.push(Number(result[i]))
} return reverse
}
for문이 도는 순서를 반대로 하여 하나씩 새로운 배열에 push 해주었다.
function solution(n) {
let result = n.toString().split("").reverse() //["5","4","3","2","1"]
result.forEach(x => x * 1) //문자 * 숫자 = 숫자 --> 이럴바엔 넘버쓰ㅡ지....;;
}
return result
}
이건 약간 헛짓거리 같은 느낌이 난다.
문자로 바꾸고, 배열로바꾼뒤, 리버스함수로 배열을 뒤집어 준다.
여기서 끝이 아니다. 요소 하나하나가 string형태이기 때문에 요소에 1을 곱해서 number의 형태로 바꿔주었다.
function solution(n) {
let arr= n.toString()
return [...n].reverse() ///숫자는 넣을수 없다.
}
```
reverse함수는 array 메서드이며, 숫자는 넣을수가 없다.
따라서 스프레드 문법을 사용하여 문자열의 arr를 []안에 넣어줬다.
> spread 라는 단어가 가지고 있는 의미는 펼치다, 퍼뜨리다 입니다.
이 문법을 사용하면, 객체 혹은 배열을 펼칠수있습니다.
ex ) [...animals, '비둘기'];
이렇게 스프레드 문법을 알면 배열을 자기맘대로 합칠수가 있다.
* map사용
```js
function solution(n) {
let result = n.toString().split("").reverse().map((x)=>{ x *1})
return result
}
이렇게 하면 한줄에 끝낼 수 도 있다.