2016-02-23 66 views
1

我想知道是否有必要檢查此特定示例中的條件。JavaScript - 是否需要首先檢查條件

我談論的條件是if (Id.indexOf("_"))

它只是檢查是否Id有下劃線並且如果是這樣則設置變量來剝離下劃線並用連字符替換。

我知道我可以只使用Id = Id.split("_").join("-");沒有if語句檢查,看看情況是真實的,但如果在這種情況下,只是不知道是不是很好的做法,第一或不檢查的條件?

你會怎樣做?並解釋爲什麼請。

Id = "My_ID"; 
    var brand = "The Brand";   
    var b = brand.trim().toLowerCase(); 
    var page = b.split(/\W+/g).join("-"); 

    if (Id.indexOf("_")) { 
     Id = Id.split("_").join("-"); 
    } 

回答

2

這可能會回答你的問題:

console.log("mytext".split("_").join("-")); // mytext 
console.log("my_text".split("_").join("-")); // my-text 

而且狀態在你的代碼,你打算if (Id.indexOf("_"))不起作用。您需要使用if (Id.indexOf("_") > -1)(~Id.indexOf("_"))

+0

感謝捕捉。我錯過了> -1 – Mike

+0

@Mike歡迎您:-) – madox2

3

如果沒有下劃線您split()什麼都不會做,所以沒有 - 沒有必要對這裏的if。用類似的東西去和你的罰款:

Id = Id.split("_").join("-"); 

Id = Id.replace(/_/g, '-'); 

避免首先創建一個數組。

相關問題