我正在尝试删除计算结果不为真的对象属性。我做错了什么?
var object = {
obj1: NaN,
obj2: false,
obj3: "Don't delete",
obj4: "Please don't delete"
};
var onlyTruthy = function(object) {
for (var key in object) {
if (object[key] === false) {
delete object[key];
}
}
return(object)
};
最佳答案
用于删除所有falsy属性,您可以只检查值。
if (!object[key]) {
delete object[key];
}
通过检查 object[key] === false
,您可以与 false
进行严格比较。这意味着,将根据类型( bool 值)和相同的值检查该值。但你需要 - 有点 - 更少。只是检查一个不真实的值。
请记住,值为 0
的属性也会被删除。
工作代码:
var object = { obj1: NaN, obj2: false, obj3: "Don't delete", obj4: "Please don't delete" },
onlyTruthy = function (object) {
for (var key in object) {
if (!object[key]) {
delete object[key];
}
}
return object;
};
onlyTruthy(object);
console.log(object);
关于javascript - 试图从对象中删除错误的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37984933/