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 に答える