BFE.dev 해답 레코드 #23.sum 설치()

https://bfe.dev/ja는 프론트 엔드 버전의 리코더로, GAFA 면접을 본다면 연습하는 것이 좋다.
다음은 저의 연습 기록입니다.
Alt Text
BFE.dev#23. sum 설치()

문제.


다음 조건을 충족하는 전제에서 실시하십시오sum().
const sum1 = sum(1)
sum1(2) == 3 // true
sum1(3) == 4 // true
sum(1)(2)(3) == 6 // true
sum(5)(-1)(2) == 6 

분석하다.


상술한 일을 보면 알 수 있다
  • sum() 매개 변수를 받아들이는function
  • 을 되돌려줍니다
  • sum() 주어진 매개 변수를 모두 추가하고 1
  • 반복
  • type coercion에서는 function = number가 가능합니다.설치valueOf 또는 toString
  • 필요

    Let's code


    먼저 function으로 돌아가는 부분을 만듭니다.매개변수의 합을 일시적으로 저장하기 위해 두 번째 매개변수를 사용할 수 있습니다.
    function sum(num, currentSum = 0) {
      const newCurrentSum = num + currentSum
      
      const func = function(arg) {
        return sum(arg, num + currentSum)
      }
    
      return func
    }
    
    
    마지막에 valueOf 가입하면 완성
    function sum(num, currentSum = 0) {
      const newCurrentSum = num + currentSum
      
      const func = function(arg) {
        return sum(arg, num + currentSum)
      }
      
      func.valueOf = () => newCurrentSum
      // below also works
      // func.toString = () => newCurrentSum.toString()
      
      return func
    }
    

    통과!


    Alt Text
    관심 있으면 BFE.dev로 해보세요. https://bigfrontend.dev/ja/problem/create-a-sum

    좋은 웹페이지 즐겨찾기