2017-02-13 64 views
0

每當我將文本分割成列表時,如果列表爲空,它將返回一個空白字符串。我怎樣才能避免這種情況,或擺脫它?擺脫分割中的空白「」字符串

var text = document.getElementById('textbox').value 
var split = text.split(',') 

如果我的文本框輸入什麼,它返回"",因此使split[""]。這弄亂了我的程序,我怎麼能輕鬆地刪除空行看起來,或防止它沒有使用for循環來循環?這種情況下所需的輸出:[]

+1

你最好的答案可能來自這個堆棧問題: http://stackoverflow.com/questions/281264/remove-empty-elements-from-an-array-in-javascript –

+0

你想得到什麼返回,而不是空陣列? –

+0

我想''''不'''「]' – lol

回答

3

如果您使用ES6,你可以做

split.filter((val) => val); 

從由split產生的數組中刪除空字符串。在JavaScript中,"" == false

+1

實際上''.filter(String)'爲我工作!請添加到您的答案! – lol

+0

@lol你可以回答你自己的問題,你知道... –

1

只需使用一個條件語句:

var split = text != '' ? text.split(',') : [];

這將使split一個空數組,如果text是一個空字符串。

此外,如果您希望測試對空的空間輸入您可以使用它代替:

var split = (text.trim() != '') ? text.split(',') : [];


修訂答:

基於從評論建議在這裏,你可以使用這個替代代碼更容易閱讀,儘管更詳細:

var split = []; 

if(text.trim() != ''){ 
    split = text.split(','); 
} 
+0

其實,.filter(字符串)爲我工作!請添加到您的答案! – lol

+0

我建議不要使用'.filter',因爲它不是標準的做法,並且產生的代碼不易讀,特別適用於將來可能會使用代碼工作的另一位程序員。 – ablopez

+0

@lol你可以回答你自己的問題,你知道... –