从文档功能中删除空对象

时间:2019-07-15 14:47:14

标签: javascript object

在保存该对象之前,我试图从一个对象中删除具有虚假值的属性,但是由于某些原因,我的功能并未删除该值是空对象的属性。

这是要清除的对象(注意: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仍然是对象的一部分。我在这里想念什么?

1 个答案:

答案 0 :(得分:2)

transaction的值为{},不是假值。

您应该检查对象是否为空:

const obj = {}
const isObjectEmpty = (obj) => Object.keys(obj).length === 0

console.log(isObjectEmpty(obj))