在保存该对象之前,我试图从一个对象中删除具有虚假值的属性,但是由于某些原因,我的功能并未删除该值是空对象的属性。
这是要清除的对象(注意: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
仍然是对象的一部分。我在这里想念什么?
答案 0 :(得分:2)
transaction
的值为{}
,不是假值。
您应该检查对象是否为空:
const obj = {}
const isObjectEmpty = (obj) => Object.keys(obj).length === 0
console.log(isObjectEmpty(obj))