답변: Flatten nested object/array in javascript answer re: Flatten nested object/array in javascript

나는 깔끔하고 작은 알고리즘으로 this question 대답했습니다.

질문의 전제는 다음과 같습니다.

[{ a: 2, b: [{ c: 3, d: [{e: 4, f: 5}, {e: 5,f: 6}]}, 
             { c: 4, d: [{e: 7, f: 8}]}
            ]
}]

이것으로:

[{a:2,c:3,e:4,f:5}, {a:2,c:3,e:5,f:6}, {a:2,c:4,e:7,f:8}]

의외로 까다로웠다. 처음 몇 번의 시도는 항상 중복을 생성했습니다. 빈 결과 개체 "템플릿"을 만든 다음 모든 배열에 대해 하나를 채우는 것을 고려했지만 너무 많은 작업처럼 들렸습니다.

결국 나는 모든 배열에 대해 재귀하고 호출이 다시 올 때 기존 속성을 덮어쓰지 않는 방식으로 반환된 배열을 현재 배열과 결합합니다.

구경하다!




답변 재: javascript에서 중첩 객체/배열 병합



2020년 9월 22일


1





그것은 약간 거대하고 키의 순서를 유지하지 않지만 중복없이 작동합니다.
재귀적이므로 호출 스택에 주의하십시오.
  • 먼저 배열의 항목을 반복합니다.
  • 항목이 배열인 경우 재귀 호출을 수행합니다.
  • 돌아오는 길에…






  • Open Full Answer

    좋은 웹페이지 즐겨찾기