在 JavaScript 中对对象进行迭代表现形式并移除假属性
假设我们有一个这样的 JSON 对象 −
const obj = { a: { someKey: { propOne: '', enabled: true } }, b: { someKey: { propOne: '', enabled: false } }, c: { someKey: { propOne: '', enabled: false } }, someKey: { ab: { propOne: '', enabled: true } } };
我们需要编写一个 JavaScript 函数,该函数接收一个这样的对象,并且递归地在该对象中移除所有值不实的 "enabled" 属性。
示例
代码如下 −
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 } } }
广告