我的JS code有问题。我用相同的值创建了两个对象。我想决定哪个人的体重指数更高。我做了if声明,但我认为控制台应该记录"The same BMI“。这表明迈克的体重指数更高。
var mark = {
fullName: 'Mark',
mass: 92,
height: 1.93,
bmi: function() {
return this.mass/(this.height * this.height);
}
};
var mike = {
fullName: 'Mike',
mass: 92,
height: 1.93,
bmi: function(){
return this.mass/(this.height * this.height);
}
};
var higherBMI = mark.bmi() > mike.bmi();
if (higherBMI === true) {
console.log('Mark has higher BMI. He has ' + mark.bmi());
} else if (higherBMI === false) {
console.log('Mike has higher BMI. He has ' + mike.bmi());
} else {
console.log('The same BMI');
}发布于 2018-06-27 17:32:33
您分配给higherBMI的higherBMI操作符返回false,如果mark.bmi不高于mike.bmi,那么在测试else if (higherBMI === false)时,higherBMI是假的。这就是为什么它要进入那个区块,并记录“Mike有更高的BMI.”您需要测试else if mark.bmi() < mike.bmi();,如果两者都不是真的;不高的和不低的,那么它是相等的。
https://stackoverflow.com/questions/51068371
复制相似问题