인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

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

L.flatten, flatten

3차원 배열, 4차원 배열

22.12.13 13:26 작성

·

508

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]

답변 1

0

유인동님의 프로필 이미지
유인동
지식공유자

2022. 12. 13. 22:39

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

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기