使用与两个变量相同的if else语句

时间:2016-04-06 02:38:27

标签: javascript

我有以下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
}

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

(注意:我无法x: pano.x || 200,因为0在JavaScript中是假的。因此将pano.x设置为0会使x:成为{ {1}}。

2 个答案:

答案 0 :(得分:3)

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 }

答案 1 :(得分:0)

JS中的

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