javascript - 从 Doc 函数中删除空对象
问题描述
我试图在保存该对象之前从对象中删除具有虚假值的属性,但由于某种原因,我的函数没有删除值为空对象的属性。
这是要清理的对象(注意:transaction
是一个空对象):
let obj = { _id: 1,
transaction: {},
deleted: false,
name: { long: 'Test' },
createdAt: '2019-07-15T14:37:24.390Z',
updatedAt: '2019-07-15T14:37:24.390Z',
__v: 0
}
这是功能:
function cleanObj(obj) {
for (let propName in obj) {
if (obj[propName] === null || obj[propName] === undefined) {
delete obj[propName];
}
}
}
当我在函数运行后控制台注销对象时,transaction
它仍然是对象的一部分。我在这里想念什么?
解决方案
transaction
有一个{}
不是假值的值。
您应该检查对象是否为空:
const obj = {}
const isObjectEmpty = (obj) => Object.keys(obj).length === 0
console.log(isObjectEmpty(obj))
推荐阅读
- javascript - 如何使用 jestJS 模拟嵌套函数
- c++ - 什么时候为派生类初始化 vptr?
- javascript - 调用ajax后如何在新的HTML页面中显示结果
- regex - 匹配字符串中的不同模式
- python - Python 集花费的内存量逐步增加
- javascript - 在javascript数组中检查并转换具有条件的重复对象
- c# - 以泛型表达式和动作作为参数调用方法
- node.js - 如何在电子应用程序 windows/mac 中检查设备连接到哪个网络和 VPN?
- android - 将片段添加到 BackStack 不断抛出错误
- jqgrid - Free JqGrid - 网格不刷新