>  기사  >  웹 프론트엔드  >  한 줄의 코드로 JavaScript에서 중첩 개체를 어떻게 평면화합니까?

한 줄의 코드로 JavaScript에서 중첩 개체를 어떻게 평면화합니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-22 13:03:03375검색

How Do I Flatten Nested Objects in JavaScript with One Line of Code?

One-Liner를 사용하여 중첩 객체 평면화

JavaScript에서는 중첩 객체를 평면화하는 작업이 자주 발생합니다. 이 작업에는 중첩된 수준이 있는 복잡한 개체를 단일 수준 개체로 변환하는 작업이 포함됩니다. 이를 달성하기 위한 다양한 접근 방식이 있지만 최신 JavaScript 기능을 활용하는 한 줄 솔루션을 자세히 살펴보겠습니다.

제공된 스니펫은 Object.sign() 메서드를 사용하여 중첩된 객체를 효율적으로 평면화합니다. 재귀 함수(_flaten)를 통해 생성된 단일 속성 개체의 배열을 결합합니다. 이 함수는 입력 객체의 각 키를 순회하며 값이 다른 객체이면 자신을 호출하고, 그렇지 않으면 단일 속성-값 쌍을 사용하여 객체를 생성합니다.

구현:

Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))

예:

중첩 개체를 고려하세요.

{
  a:2,
  b: {
    c:3
  }
}

이 개체를 평면화하면 다음이 생성됩니다.

{
  a:2,
  c:3
}

장점:

  • 간결성: 한 줄의 코드로 객체 평면화를 달성합니다.
  • 다양성: 순수 JavaScript와 Underscore와 같은 인기 라이브러리 모두에 적용 가능 .
  • 유연성: 재귀 함수(_flaten)를 사용하여 중첩된 구조를 동적으로 처리합니다.

고려 사항:

  • ES6 호환성: Object.sign 및 스프레드 연산자와 같은 최신 JavaScript 기능에 대한 지원이 필요합니다.
  • Zero-Iteration: 재귀 함수는 모든 경로를 탐색합니다. 이는 중첩된 객체에 동시에 존재하며 이는 대형 객체의 성능에 영향을 미칠 수 있습니다.

위 내용은 한 줄의 코드로 JavaScript에서 중첩 개체를 어떻게 평면화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.