Javascript 从Doc函数中删除空对象

Javascript 从Doc函数中删除空对象,javascript,object,Javascript,Object,在保存对象之前,我试图从对象中删除具有虚假值的属性,但由于某些原因,我的函数没有删除值为空对象的属性 以下是要清理的对象(注意:事务为空对象): 以下是函数: function cleanObj(obj) { for (let propName in obj) { if (obj[propName] === null || obj[propName] === undefined) { delete obj[propName]; } } } 当我在函数运行

在保存对象之前,我试图从对象中删除具有虚假值的属性,但由于某些原因,我的函数没有删除值为空对象的属性

以下是要清理的对象(注意:
事务
为空对象):

以下是函数:

function cleanObj(obj) {
  for (let propName in obj) {
    if (obj[propName] === null || obj[propName] === undefined) {
        delete obj[propName];
    }
  }
}

当我在函数运行后注销对象时,
事务仍然是对象的一部分。这里缺少什么?

事务
的值为
{}
,这不是一个错误的值

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

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

console.log(isObjectEmpty(obj))
事务
的值为
{}
,该值不是假值

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

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

log(isObjectEmpty(obj))
使用==(相等)而不是==(标识比较)
false==undefined
false==null
都返回false==(相等)而不是==(标识比较)
false==undefined
false==null
都返回false谢谢。换句话说,这将处理它:`async function cleanObj(obj){for(让propName在obj中){if(obj[propName]==null | | | | obj[propName]==undefined | | Object.keys(obj[propName])。length==0{delete obj[propName]}返回obj;}`Yep。这应该行得通。不过,它最好是自己的函数,这样以后就可以重复使用它了。另外,最好使用
typeof obj[propName]===“undefined”
。我也不认为这需要异步函数。“typeof”的观点很好。关于使每个检查进入它自己的功能,我认为这完全取决于一个人的用例。这样做并不总是更好的。谢谢。换句话说,这将处理它:`async function cleanObj(obj){for(让propName在obj中){if(obj[propName]==null | | | | obj[propName]==undefined | | Object.keys(obj[propName])。length==0{delete obj[propName]}返回obj;}`Yep。这应该行得通。不过,它最好是自己的函数,这样以后就可以重复使用它了。另外,最好使用
typeof obj[propName]===“undefined”
。我也不认为这需要异步函数。“typeof”的观点很好。关于使每个检查进入它自己的功能,我认为这完全取决于一个人的用例。这样做并不总是更好的。
function cleanObj(obj) {
  for (let propName in obj) {
    if (obj[propName] === null || obj[propName] === undefined) {
        delete obj[propName];
    }
  }
}