• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

3차원 배열, 4차원 배열

22.12.13 13:26 작성 조회수 434

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

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