问题描述
我正在尝试检查对象是否具有真实或错误的值。例如,如果一个对象具有所有真实值,那么我想做点什么。如果对象值不真实,即错误地例如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>