자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
- n은 10,000,000,000이하인 자연수입니다.
해당문제는 전에 포스팅 했던 하샤드 수의 다른 사람의 풀이와 비슷한점이 많을거라고 느꼈다.
그래서 아래와 같이 코딩했다
function solution(n){
return ((n + '').split('');
}
흠 숫자를 받아서 문자열로 만들고 split을 이용해 각각 나누는데 까지는 했지만,
이걸다시 숫자로 만드는 부분에서 막혔다. 지난번 하샤드 수 처럼 reduce()를 사용하려 했지만 reduce()는 하나의 값만 반환 하기 때문에 적절하지 않다.
검색을 해보니 아래와 같은 코드로 해결할 수 있었다.
function solution(n){
return ((n + '').split('').map(Number)).reverse();
}
solution(12345);
split() 뒤에 .map(Number)를 붙혀주면 숫자로 변환시켜준다.
MDN에서 map()함수에 대해 아래와 같이 설명 하고있다.
map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.
.split()을 통해 쪼개진 문자열 요소에 대해 각각 .map() 함수를 통해 Number를 수행해준다.
아직은 많이 부족하고 배열 메소드 들을 잘 몰라서 조금만 응용을 해도 해맨다