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

วนลูปออบเจ็กต์และลบคุณสมบัติ false ใน JavaScript

สมมติเรามี JSON object แบบนี้:

const obj = { a: { someKey: { propOne: '', enabled: true } }, b: { someKey: { propOne: '', enabled: false } }, c: { someKey: { propOne: '', enabled: false } }, someKey: { ab: { propOne: '', enabled: true } } };

เราต้องเขียนฟังก์ชันที่รับออบเจ็กต์แบบนี้และลบคุณสมบัติ "enabled" แบบเรียกซ้ำจากออบเจ็กต์ในที่เดียว (in place) ที่มีค่า falsy

ตัวอย่าง

โค้ดสำหรับนี้:

const obj = { a: { someKey: { propOne: '', enabled: true } }, b: { someKey: { propOne: '', enabled: false } }, c: { someKey: { propOne: '', enabled: false } }, someKey: { ab: { propOne: '', enabled: true } } }; const deleteFalsyKey = obj => { const keys = Object.keys(obj); keys.forEach(key => { if(obj[key].enabled === false){ delete obj[key]; return; }; if(obj[key] && typeof obj[key] === 'object'){ deleteFalsyKey(obj[key]); if (!Object.keys(obj[key]).length) { delete obj[key]; }; } }); }; deleteFalsyKey(obj); console.log(obj);

ผลลัพธ์

ผลลัพธ์ในคอนโซล:

{ a: { someKey: { propOne: '', enabled: true } }, someKey: { ab: { propOne: '', enabled: true } } }