Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ลบอ็อบเจ็กต์ว่าง (Blank Objects) ทั้งหมดจากอ็อบเจ็กต์ - JavaScript

อ็อบเจ็กต์ที่มี nested empty objects:

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

ใช้ forEach(), typeof, delete แบบ recursive

ตัวอย่างโค้ด

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);

รันด้วยคำสั่ง:

node fileName.js

ชื่อไฟล์: demo283.js

ผลลัพธ์

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

คำอธิบาย: ฟังก์ชัน recursive ตรวจสอบทุก key ถ้าค่าเป็นอ็อบเจ็กต์และหลัง recursive แล้วคืน null (ว่างเปล่า) ให้ delete key นั้นออก คืน null ถ้าอ็อบเจ็กต์ว่างเปล่าทั้งหมด