2015-10-28 88 views
0

我使用的是像這樣一些定義的變量創建一個字符串:創建條件和非條件變量JavaScript字符串

var name = 'John'; 
var business = 'Google'; 
var email = name + ' registered the business ' + business; 

在現實中,這是從一個表單提交這樣的變量將在形式設置併發送到我的NodeJS後端來創建這個字符串。用戶可能會也可能不會輸入消息。我創建了一個if語句將其添加到他們是否有串:

if (message) email += '<br /><br />Message: ' + message;

問題是,當我擴大這個邏輯,它可以變得非常混亂。例如,如果我想將幾個條件變量添加到原始字符串中間的各個點。有沒有辦法在初始字符串構建中執行條件邏輯?

回答

3

使用三元運算符。它仍然可能變得混亂,但它減少了「如果」到處。

var email = name + ' registered ' + business 
      + (message ? '<br /><br />Message: ' : '') // conditional line 
      + more_stuff...; 
+0

正是我以後。正是這種內聯代碼的風格會阻止它變得太複雜或混亂。謝謝 – Coop

0

有很多方法可以構造代碼來清理事情。一個簡單的解決方案就是創建一個對象來跟蹤您的各種輸入,然後您可以遍歷該對象來追加所有必需的項目。

例如:

var obj = { 
    message: messageField, 
    messageTwo: messageTwoField 
} 

for (keys in obj){ 
    if (key == message && obj.key) { 
    //append the string to a specific place 
    } 
} 

的方法有很多潛在的解決這個問題,但通過存儲一個對象,它可以幫助清理東西了一切。此外,if語句是基於密鑰名稱的條件,以及是否有分配給該密鑰名稱的值。這當然只是我的意見,你可以如何處理這個問題,應用程序的大小和複雜性可以大大改變這個答案。