2016-04-06 23 views
0

Ben deyimi ise şu var aynı eğer başka deyimi kullanarak:iki değişken

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 
} 

O pano.x değerine göre panoX ayarlar. Ama aynı zamanda bir pano.y var, bu aynı ifadeden geçiyor. Yeni bir if ifadesi yazmak zorunda kalmadan pano.y ile nasıl baş edebilirim?

(Not: Ben x: pano.x || 2000 çünkü JavaScript falsy olduğunu yapamaz Yani pano.xx: yapar 0 için 200 olmak ayarı

+0

Bazı kodları vermediniz gibi görünüyor, pano nerede? – theblindprophet

+0

Peki, panoramaY için koşullar nedir? aynı mı? pano.y === 0? – brk

+0

@ user2181397 Evet, aynı. – alex

cevap

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) 
} 

ilk şart çare durumda aynı (gereksiz gibi görünüyor..), bu yüzden JS

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

Belki, 'dönüş (x === boş)? 200: x; – Nurlan

+0

Evet, bu ilk koşul gereksiz görünüyor. Sadece mantığı sorudaki gibi tutmaya çalıştı. – Thilo

0

kısaltılmış olabilir:

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