https://programmers.co.kr/learn/courses/30/lessons/12931
function solution(n)
{
let answer=0;
n=n.toString().split('');
for(let x of n) {
answer+=Number(x);
}
return answer;
}
여러개의 메소드를 활용해서 for문을 돌지않고 해결할 수 있었다. map은 배열의 요소를 모두 돌면서, 새로운 배열을 만든다는 것을 기억하자!
function solution(n)
{
return n.toString().split('').map(v => Number(v)).reduce((a, b) => a+b, 0);
}
만약
return n= n.toString().split('').reduce((a, b) => Number(a)+Number(b));
만 작성하면, n의 길이가 1일때는 실패가 뜬다. 왜냐면 reduce메소드까지 가지 못하기 때문에 Number()로 변환이 되지 않는다. 따라서,if(n<10) return n
이라는 조건을 넣어줘야한다.혹은 reduce전에 map(v=>Number(v))를 통해 number화 시켜주면 reduce까지 가지않더라도 number화 되기 때문에 성공이다.(위 풀이 참고)
제한사항을 잘 생각하자!