问题描述
我正在研究Ionic 4,在其中一页中,我需要根据性别显示字符串。
因此,该函数将采用变量gen
,如果为true
,则返回'Female'
,如果为false
则返回'Male'
。
在实现它的那一刻,它只给我gen
每个值的第一种情况(不管gen是true还是false)。
我尝试了==
运算符, not
运算符和===
。
它发生在其他返回值的函数中。
displayGender(gen: boolean): string {
console.log(gen);
if (gen) {
console.log(gen);
return 'Female';
} else {
return 'Male';
}
}
我放了一些日志看。
例如,在我的测试之一中,我发送了一个false
值,控制台输出false
,然后再次输出false
,这意味着它返回'Female'
。
谢谢
1楼
布尔变量可能是字符串格式。
尝试这个:
displayGender(gen: boolean): string {
console.log(gen);
if (gen == 'true') {
console.log(gen);
return 'Female';
} else {
return 'Male';
}
}
2楼
您的代码没有错...只需在参数列表中传递正确的参数即可。
displayGender(gen: boolean): string {
console.log(gen);
if (gen) {
console.log(gen);
return 'Female';
} else {
return 'Male';
}
}
console.log(this.displayGender(false));
根据您的代码,期望为布尔值。 您可能正在传递字符串值(如果是,则调整逻辑)。
displayGender(gen: boolean): string {
console.log(gen);
if (gen == 'true') {
console.log(gen);
return 'Female';
} else {
return 'Male';
}
}
console.log(this.displayGender('false'));
3楼
displayGender(gen: boolean): string {
if (gen == "true") {
return 'Female';
} else {
return 'Male';
}
实际上gen被认为是字符串而不是布尔值。 这就是为什么您要面对这个问题。 由于gen被视为字符串,因此您可以通过将其与字符串值进行比较来简单地解决它。