inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

L.flatten, flatten

3차원 배열, 4차원 배열

578

작성자 없음

작성한 질문수 0

0

2차원 배열일 경우에는 L.flatten 코드로 가능하지만

3차원 배열, 4차원 배열일 경우엔 어떻게 구현해야 좋을까요?

아래와 같이 구현할려고하니 deepFlatten을 해결해주는 곳이 없어서 3차원 배열 이상은 이터레이터로 리턴받고 있습니다.ㅠㅠ

const isIterable = a => a && a[Symbol.iterator];

function* deepFlatten(iter){
  for(const a of iter){
    if (isIterable(a)) yield deepFlatten(a)
    else yield a;
  }
}

L.flatten = function* (iter) {
  for (const a of iter) {
    if (isIterable(a)) yield deepFlatten(a)
    else yield a;
  }
};

var it = L.flatten([[1, [1,2,3]], 3, 4, [5, 6], [7, 8, 9]]);
log(take(Infinity, it))

[deepFlatten, 3, 4, deepFlatten, deepFlatten]

함수형-프로그래밍 javascript

답변 1

0

MDU 유인동

deepFlatten 부분 코드 예제 확인해보세요 :)

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

1

113

1

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

0

74

2

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

0

55

1

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

0

115

1

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

1

465

1

pipe함수

1

532

1

Identity 함수

0

451

1

함수형 프로그래밍이란

0

833

1

reduce 예제 코드 제안!

0

405

1

fxts를 배워보려고 합니다.

1

537

1

flatMap 관련 질문드립니다~

1

446

1

다용성이 높은 L.flatMap

0

359

1

변수에 재 할당 금지~

0

540

1

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

0

484

2

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

1

458

1

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

0

465

2

reduce에 L.range를 사용할 때

0

528

2

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

3

739

2

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

2

789

3

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

1

500

1

안녕하세요 강사님!

0

381

2

fxts에 go가 없는 이유?

0

843

1

비동기 관련 질문입니다!

0

464

1

질문 있습니다.

0

518

1