중첩 객체를 간결하게 평면화
중첩 객체를 평면 구조로 변환하는 작업은 다양한 프로그래밍 시나리오에서 필요한 경우가 많습니다. 빠르고 효율적인 솔루션을 위해 간결한 단일 라이너를 활용할 수 있습니다.
제공된 중첩 개체를 평면화하려면:
{ a:2, b: { c:3 } }
원하는 출력으로:
{ a:2, c:3 }
다음 JavaScript 표현식을 사용하세요.
Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))
이 접근 방식의 핵심 개념은 단일 속성 개체의 배열을 재귀적으로 생성하는 것입니다. Object.keys(o) 메소드는 입력 객체 o의 모든 키를 검색합니다. 그런 다음 각 키 k에 대해 개체 유형이 확인됩니다. typeof o[k] === 'object'인 경우 _Flatten 함수가 중첩된 객체에 재귀적으로 적용됩니다. 그렇지 않으면 키 k와 값 o[k]를 사용하여 단일 속성 개체를 구성합니다.
[].concat(... 구문은 이러한 모든 단일 속성 개체를 단일 배열로 결합합니다. 마지막으로, Object.sign({}, ...)은 이러한 배열을 원하는 평면화된 출력으로 병합합니다.
가독성을 위해 코드 형식을 다음과 같이 다시 지정할 수 있습니다.
Object.assign( {}, ...function _flatten(o) { return [].concat(...Object.keys(o) .map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]}) ) ); }(yourObject) )
이것은- liner는 중첩된 개체를 효과적으로 평면화하여 데이터 변환 요구 사항에 맞는 간결하고 효율적인 솔루션을 제공합니다.
위 내용은 JavaScript에서 중첩된 객체를 간결하게 평면화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!