【问题标题】:How to check "truthyness" of an object, and then delete the falsy ones and edit the object如何检查对象的“真实性”,然后删除虚假的对象并编辑对象
【发布时间】:2014-11-18 01:03:07
【问题描述】:

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

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]);    
}

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

【问题讨论】:

  • 你必须在一个变量上调用 delete。
  • 我如何让循环指定它当时循环的变量?

标签: javascript object truthiness


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 2018-12-12
    • 2021-09-11
    相关资源
    最近更新 更多