>웹 프론트엔드 >JS 튜토리얼 >JavaScript 객체에서 Null 또는 정의되지 않은 속성을 제거하려면 어떻게 해야 합니까?

JavaScript 객체에서 Null 또는 정의되지 않은 속성을 제거하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-28 04:31:13338검색

How Can I Remove Null or Undefined Attributes from a JavaScript Object?

JavaScript의 객체에서 빈 속성 제거

JavaScript에서 객체는 정의되지 않거나 null인 속성을 가질 수 있어 코드가 복잡해질 수 있습니다. 그리고 작업하기가 더 어려워집니다. 이 문제를 해결하기 위해 다양한 기술을 사용하여 개체에서 이러한 빈 속성을 제거할 수 있습니다.

ES10/ES2019

이러한 메서드는 Object.fromEntries()의 도입을 사용합니다. 방법:

  • 한 줄로: let o = Object.fromEntries(Object.entries(obj).filter(([_, v]) => v != null));
  • 위와 동일하지만 함수와 같습니다: function RemoveEmpty(obj) { return Object.fromEntries(Object.entries(obj).filter(([_, v]) => v != null)); }
  • 중첩된 객체에서 항목을 제거하는 재귀 버전: function RemoveEmpty(obj) { return Object.fromEntries( Object.entries(obj) .filter(([_, v]) => v != null) .map(([k, v]) => [k, v === Object(v) ? RemoveEmpty(v) : v]) ); }

ES6/ES2015

  • 변이하는 단일 라이너: Object.keys(obj).forEach((k) => obj [k] == null && obj 삭제[k]);
  • A 변경되지 않는 버전: let o = Object.keys(obj) .filter((k) => obj[k] != null) .reduce((a, k) => ({ ...a, [ k]: obj[k] }), {});
  • 위와 유사하며 함수로 작성됨: function RemoveEmpty(obj) { return Object.entries(obj) .filter(([_, v]) => v != null) .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {} ); }
  • 중첩된 객체를 처리하는 재귀 함수: function RemoveEmpty(obj) { return Object.entries(obj) .filter(([_, v]) => v != null) .reduce( ( acc, [k, v]) => ({ ...acc, [k]: v === Object(v) ? RemoveEmpty(v) : v }), {} ); }

ES5/ES2009

  • 기능적 비재귀 버전: function RemoveEmpty(obj) { return Object.keys(obj) .filter (함수 (k) { return obj[k] != null; }) .reduce(함수 (acc, k) { acc[k] = obj[k]; return acc }, {}); }
  • 재귀 기능 버전: function RemoveEmpty(obj) { return Object.keys(obj) .filter(function (k) { return obj[k] != null; }) .reduce(function (acc , k) { acc[k] = typeof obj[k] === "객체" ? obj[k]; 반환 acc }, {}); }

위 내용은 JavaScript 객체에서 Null 또는 정의되지 않은 속성을 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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