2011-08-17 56 views
0

我有這樣的說法:JavaScript語句將擴大

pn = r.notFound == "true" ? "Not currently assigned" : "Currently assigned to VPMO " + r.currentAssignment;

,我需要添加一個條件爲「不確定」,然後一個值給它。它基本上需要讀取類似...

r.notFound == "undefined" then 「Already assigned to this project」
else if r.notFound == 「true」 then 「Not currently assigned」
else
「Currently assigned to VPMO 「 + r.currentAssignment;

+0

你永遠也不會測試任何其他值? (你接近「switch」的閾值) – Shad

+0

@shad永遠不要說永遠,但選擇是有限的,這個修復只是暫時的,直到更新過程完成。 – HPWD

回答

2
var pn; 

if (r.notFound == 'undefined') { // be aware that this checks for STRING undefined 
    pn = 'Already assigned to this project'; 
} else if (r.notFound == 'true') { // be aware that this checks for STRING true 
    pn = 'Not currently assigned'; 
} else { 
    pn = 'Currently assigned to VPMO ' + r.currentAssignment; 
} 

編輯

如果你想檢查變量是否定義使用:

if (typeof r.notFound === 'undefined') 
+0

好的,然後看看你的方法,如果undefined不是一個字符串,我會刪除引號,並且需要改變=(相等)符號的數量嗎? – HPWD

+0

@dlackey:查看我的更新回答 – PeeHaa

+0

謝謝。你的解決方案比我正在使用的原始代碼更清潔,而且平等總是讓我感到滿意。 :) – HPWD

0

您可以使用多個嵌套的三元運算符:

r.notFound == "undefined" ? 
    "Already assigned to this project" : 
    (r.notFound == "true" ? "Not currently assigned" : "Currently assigned to VPMO " + r.currentAssignment) 
+1

只要我不是必須維護代碼的人,你可以這樣做;) – PeeHaa

+0

@ fabio-cicerchia所以呢?和:相互作用的工作? – HPWD

+0

@PeeHaa LOL。就我個人而言,我更喜歡你的方法,但我正在填補其他人的意見,我希望代碼看起來像他們的其他陳述。 – HPWD