Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm cách nào để xóa tất cả các đối tượng trống khỏi một Đối tượng trong JavaScript?

Giả sử sau đây là đối tượng của chúng tôi -

const details =
{
   name: 'John',
   age: {},
   marks: { marks: {} }
}

Chúng ta cần xóa các đối tượng màu đen ở trên. Bạn có thể sử dụng forEach () cùng với typeof và delete để xóa các đối tượng trống.

Ví dụ

Sau đây là mã -

const details =
{
   name: 'John',
   age: {},
   marks: { marks: {} }
}
function removeAllBlankObjects(detailsObj) {
   Object.keys(detailsObj).forEach(k => {
      if (detailsObj[k] && typeof detailsObj[k] === 'object' && removeAllBlankObjects(detailsObj[k]) === null) {
         delete detailsObj[k];
      }
   });
   if (!Object.keys(detailsObj).length) {
      return null;
   }
}
removeAllBlankObjects(details);
console.log(details);

Để chạy chương trình trên, bạn cần sử dụng lệnh sau -

node fileName.js.

Đây, tên tệp của tôi là demo283.js.

Điều này sẽ tạo ra kết quả sau trên bảng điều khiển -

PS C:\Users\Amit\javascript-code> node demo283.js
{ name: 'John' }