javascript - 如何在Javascript中从一个对象中删除所有空白对象?

标签 javascript

如何在Javascript中从一个对象中删除所有空白对象?
像这样

const test={a:'a',b:{},c:{c:{}}}
如何获得结果:
test={a:'a'}

最佳答案

下面的递归函数将删除所有空对象。

function removeEmpty(obj) {
    Object.keys(obj).forEach(k => {
        if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
            delete obj[k];
        }
    });

    if (!Object.keys(obj).length) {
        return null;
    }
}
工作演示

function removeEmpty(obj) {
    Object.keys(obj).forEach(k => {
        if (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k]) === null) {
            delete obj[k];
        }
    });

    if (!Object.keys(obj).length) {
        return null;
    }
}

const test1 = {data:{a:{}}};
removeEmpty(test1);
console.log(test1); // {}

const test2 = {data:{a:{}, b:1}};
removeEmpty(test2);
console.log(test2); // {data:{b: 1}}

const test3 = {a:'a',b:{},c:{c:{}}};
removeEmpty(test3);
console.log(test3); // {a: 'a'}

关于javascript - 如何在Javascript中从一个对象中删除所有空白对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63432654/

相关文章:

javascript - Kendo 网格删除行,但不调用销毁 URL

javascript - 在 JavaScript 的 if 中使用动态运算符

javascript - React Native - JSON 本地存储

javascript - 创建 react 组件以有条件地包装子组件

javascript - 使用 jQuery 获取 iframe 的 HTML 内容

javascript - 我们的菜单有什么问题?

javascript - 你能强制IE8识别背景大小: 100%?吗

丹麦语字符串的 JavaScript UTF-8 编码问题

javascript - 如何在 React 中使用 POST 方法将对象添加到数据库?

javascript - 在 JavaScript 中启用/禁用导航项的最佳方式?