我正在写一个非常简单的条件,只给我“其他”答案。

这个想法是,如果我的宠物(pets)比朋友(friendsPets)多,那么我需要将其分配给新变量(mostPets),以查看谁拥有最多的宠物。但是,当我记录新变量(mostPets)时,它只为我提供了条件的“其他”部分的答案。新变量在控制台中应记录为4,但仅记录为0。如果重新排列条件语句,它的确为4-但我知道这是不对的。我知道这是一个非常简单的问题,但是我对此很陌生。有什么建议吗?



let pets = 2;
let friendsPets = 0;
pets = 4;

if (pets > friendsPets) {
  let mostPets = pets
} else(friendsPets > pets)
let mostPets = friendsPets
console.log(mostPets);

最佳答案

首先,您需要在执行条件之前声明变量mostPets,否则将无法在该条件之外访问变量。

另外,您的条件else-if书写不正确。通过这些更改,它应该可以像这样正常工作:



let pets = 2;
let friendsPets = 0;
pets = 4;

let mostPets;
if (pets > friendsPets) {
  mostPets = pets
} else if (friendsPets > pets) {
  mostPets = friendsPets
}
// Note in this scenario we are ignoring if the variables are the same value, it would be better to just put 'else' without an extra condition.
console.log(mostPets);





注意:
正如@mplungjan提到的,要缩短代码,您可以使用以下代码更改逻辑以得到相同的结果:

let mostPets = Math.max(pets, friendsPets);

10-06 04:17