使用带有两个变量的相同if-else语句

Using the same if else statement with two variables

本文关键字:变量 语句 if-else 两个      更新时间:2024-01-10

我有以下if语句:

let panoX = 0
if (pano.x === 0) {
  panoX = 0
} else if (pano.x === null) {
  panoX = 200
} else {
  panoX = pano.x
}
// This will be sent in a form
{
  x: panoX,
  y: panoY
}

它根据pano.x的值设置panoX。但我也有一个pano.y,它通过相同的if语句。如何处理pano.y而不必编写新的if语句?

(注意:我不能做x: pano.x || 200,因为0在JavaScript中是错误的。所以将pano.x设置为0会使x:成为200

function panoFix(x){
   if (x === 0) return 0;
   if (x === null) return 200;
   return x;
}
// This will be sent in a form
{
  x: panoFix(pano.x),
  y: panoFix(pano.y)
}

第一个条件似乎是多余的(与回退情况相同),因此可以缩短为

function panoFix(x) { return x === null ? 200 : x }

在JS:中

var panoX = 200, panoY = 200;
if(pano !== null){
  panoX = pano.x;
  panoY = pano.y;
}