12년 후, 어려운 코딩 문제를 푸는 데 12분밖에 걸리지 않았습니다.

코딩 문제


  • 미리 결정된 기능 목록을 작성한 다음 목록에 동적으로 적용하고 싶습니다.

  • 예를 들어




    const list = [1,2,3,4,5,6,7,8,9,10];
    
    function under8(i) { return i < 8 }
    function over3(i) { return i > 3 }
    function under6(i) { return i < 6 }
    function over4(i) { return i > 4 }
    
    let fns = []
    
    // accumulate the list of functions to apply
    fns = [under8, over3, under6, over4]
    
    let filteredList;
    
    // build a program that generates a filtered array from list
    
    // Testing the program
    console.log(filteredList) // -> 5
    


    단 한 번의 고민 끝에 해결책이 떠올랐습니다!




    filteredList = fns.reduce((acc, fn) => {
      return acc.filter(fn)
    }, list)
    


    작동 방식


  • 함수 배열은
  • 를 통해 반복됩니다.
  • 시퀀스는 10개의 숫자 목록으로 시작합니다
  • .
  • 각 반복에서 현재 함수를 사용하여 목록을 필터링합니다.
  • 목록에서 항목의 결과 하위 집합이 다음 반복으로 전달되어 다음 함수가 필터로 적용됩니다.
  • 결과가 새 배열로 FilteredList에 저장됩니다.
  • fns 목록에 추가된 각 기능에 의해 필터링된 후 출력이 목록입니다
  • .

    이런 순간들이 기분이 좋습니다. 가능하면 축하하세요.



    함수형 프로그래밍 감사합니다.

    좋은 웹페이지 즐겨찾기