inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

함수형 프로그래밍과 JavaScript ES6+

Kleisli Composition - L.filter, filter, nop, take

filter가 아무것도 걸러내지 못하는 경우

111

정진호

작성한 질문수 7

0

function FlatEvaluation(evaluation: Array<[string, { score: number }]>) {
  return pipe(
    evaluation,
    filter(([key]) => key !== "overallAssessment"),
    map(([key, value]) => ({ key: key, score: value.score }))
  );
}

function findPros(evaluation: { [x: string]: { score: number } }) {
  return pipe(
    Object.entries(evaluation),
    FlatEvaluation,
    filter((item) => item.score >= 80),
    reduce((item, acc) => (item.score > acc.score ? item : acc)),
    (item) => item.key
  );
}

// A의 경우
findPros({ a: { score: 90 }, b: { score: 85 }, c: { score: 75 } })

// B의 경우
findPros({ a: { score: 70 }, b: { score: 65 }, c: { score: 75 } })

 

안녕하세요 선생님 강의 잘 듣고 있습니다. 다름이 아니라 한 가지 궁금한 점이 있어서 이렇게 질문을 드립니다 (나중에 뒤에 가서 이 문제에 대한 해답이 나오거나, 이미 앞에 이런 문제에 대한 해결 방법이 나왔다면 참 부끄러워질 거 같긴 합니다)

다름이 아니라 FxTS를 사용해 기존의 프로젝트 일부를 함수형으로 리팩토링 해보고자 하는 중이었습니다. { [x: string]: { score: number } } 타입의 객체를 인자로 받아 제일 고득점을 한 인원의 이름(key)를 리턴해야 합니다.

 

A의 경우 80점 이상의 득점자가 두 명이 있고, 그 중 더 높은 득점을 한 a의 이름이 잘 리턴됩니다.

그런데 B의 경우 80점 이상의 득점자가 하나도 없다보니 filter가 적절한 값을 리턴하지 못해 reduce에서 에러가 납니다.

 

이런 경우에는 어떻게 처리하는 게 옳을지 궁금합니다.

javascript 함수형-프로그래밍

답변 1

1

MDU 유인동

reduce에 기본 값을 넣어주시면 됩니다 :)

프론트엔드 실무에서 어떤때에 쓰이는지 궁금합니다

1

111

1

함수형 프로그래밍 심화 강의 자료 추천

0

72

2

함수형 자바스크립트 프로그래밍 책

0

52

1

take 함수의 성능적면에서의 이점

1

463

1

pipe함수

1

530

1

Identity 함수

0

450

1

함수형 프로그래밍이란

0

831

1

reduce 예제 코드 제안!

0

403

1

fxts를 배워보려고 합니다.

1

537

1

flatMap 관련 질문드립니다~

1

444

1

다용성이 높은 L.flatMap

0

357

1

변수에 재 할당 금지~

0

540

1

DevTools라고 옆에 결과 확인하는거 어떻게 하나요?

0

482

2

소요시간에 관해서 질문드립니다

1

457

1

join에 대한 내용이 궁금증이 해결되지 않아서 질문드립니다!

0

465

2

reduce에 L.range를 사용할 때

0

526

2

[이해내용 공유] Lazy 에서 C.reduce가 병렬 효과를 내는 이유

3

738

2

제가 이해한 C.Reduce와 Reduce의 동작 차이 정리

2

787

3

go, pipe 함수 관련하여 질문 드립니다.

1

497

1

안녕하세요 강사님!

0

377

2

fxts에 go가 없는 이유?

0

837

1

비동기 관련 질문입니다!

0

457

1

질문 있습니다.

0

514

1

강의 중 혼란스러운 부분이 생겨 질문 드립니다.

0

543

2