0

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

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

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

4

1 回答 1

2

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

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

for (x in user) {
  if (user[x]) {
    console.log("truthy");
  } else {
    delete user[x];
  }
}
于 2014-11-18T01:09:34.973 回答