如何解决如何使用double bang运算符检查对象的值是否为Truthy或false?
我正在尝试检查对象是否具有真实或错误的值。例如,如果一个对象具有所有真实值,那么我想做点什么。如果对象值不真实,即错误地例如0,''和未定义,我想做其他事情。但是,它不能像它总是执行if语句的第一部分那样工作。我有什么事做错了吗?
class Truthy {
a: string;
b: number;
c: object;
constructor() {
this.a = 'a';
this.b = 1;
this.c = {};
}
}
class Falsely {
a: string;
b: number;
c: object;
constructor() {
this.a = '';
this.b = 0;
this.c = undefined;
}
}
const truthy = new Truthy()
const falsely = new Falsely()
if (!!truthy) {
// do something
} else {
// do something else
}
if (!!falsely) {
// do something
} else {
// do something else
}
解决方法
您需要创建一个函数来测试每个属性是否为真,然后一次合并一个结果。
- 将对象作为参数传递(如果是类方法,则引用“ this”)
- 获取所有密钥
- 初始化布尔值
- 循环测试每个人
- 返回结果
这是一个布尔函数,因此您可以将其放入所需的if()
<label>ab</label>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。