javascript - 如何检查对象的 "truthyness",然后删除虚假的并编辑对象

标签 javascript object truthiness

我需要获取这个对象,检查每个属性的真实性,然后删除不真实的属性。

var user = {
name: 'my name', 
email: null,
pwHash: 'U+Ldlngx2BYQk',
birthday: undefined,
username: 'myname33',
age: 0
}

这是我正在尝试的代码

function truth(x) {
    if (x) {
    console.log("truthy");
    } else {
    delete; 
    }
}

for (x in user) {
    truth(user[x]);    
}

但它不起作用,我什至不确定我是否完全理解如何确保我检查的是正确的。我做错了什么?

最佳答案

删除对象时必须同时指定对象和属性。

仅从传递给函数的属性复制值是不够的,因此您不能在该函数中执行此操作(除非您还传递对象引用和属性名称)。

for (x in user) {
  if (user[x]) {
    console.log("truthy");
  } else {
    delete user[x];
  }
}

关于javascript - 如何检查对象的 "truthyness",然后删除虚假的并编辑对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26984875/

相关文章:

javascript - 减去的几何形状会导致奇怪的照明

javascript - 在 AngularJS 中使用 ng-options 设置填充选择菜单的 'selected' 选项

javascript - 为对象属性分配新值

python - 对象具有值(value)但似乎不存在?

php - 为什么不能将 SplFileInfo 转换为 bool 值?

Python 3 lambda错误: The truth value of a Series is ambiguous

javascript - 推送键值对来映射对象javascript

javascript - 测试 Angularjs 1.6 中 $q.all() 的 then 中设置的公共(public)值

objective-c - 不知道为什么出现 "EXC Bad Access"错误

javascript - 用另一个原型(prototype)扩展原型(prototype)