首页 > 解决方案 > 从 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它仍然是对象的一部分。我在这里想念什么?

标签: javascriptobject

解决方案


transaction有一个{}不是假值的值。

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

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

console.log(isObjectEmpty(obj))


推荐阅读