엄청난 함수를 알아냈다.
function multiplyFunc(num) { //num=729
let strNum = String(num).split(''); //["7", "2", "9"]
let multiply = Number(strNum[0]); //7
let result = 1;
...
for(let i=1; i<strNum.length; i++) {
multiply *= Number(strNum[i]);
}
...이하 코드 생략
}
파라미터로 숫자가 들어오는데 예를 들어 3자리수 729라는 숫자가 들어오면 729를 계산하고, 그 결과값을 또 조건(나중에 결과값이 0이상 10미만일 때 그 숫자를 리턴하는)에 따라 계산하는 식인 알고리즘 문제를 풀고있었다.
숫자 하나하나를 계산하기 위해 문자열로 바꾸고, split('')을 한뒤 반복문을 돌면서 반복문 안에서 Number()로 하나하나 형변환하면서 문제를 풀고 있었다...
function multiplyFunc(num) {
let numArr = String(num).split('').map(Number); //(3) ["7", "8", "6"] ---> .map(Number)를 해주면 숫자들이 배열로 들어간다. --> (3) [7, 8, 6]
let result = 1;
for(let i=0; i<numArr.length; i++) {
result *= numArr[i];
}
...이하 코드 생략
}
뭔가 값은 숫자이지만 문자열 형태로 배열에 들어있는데 계속해서 Number()를 해줘야 돼서 비효율적이라 생각했는데 아니.. .map(Number)라는 엄청난 함수가 있었다.
map이 뭔지 아직 공부를 해보지 않아서 저런 함수가 있는지 몰랐다.
map이 뭔지도 공부해야겠다! :)