map.(Number)

holang-i·2021년 2월 18일
1
post-thumbnail
post-custom-banner

.map(Number)



엄청난 함수를 알아냈다.

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이 뭔지도 공부해야겠다! :)

post-custom-banner

0개의 댓글