2017-02-13 54 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你可以回答你自己的问题,你知道... –