每当我将文本分割成列表时,如果列表为空,它将返回一个空白字符串。我怎样才能避免这种情况,或摆脱它?摆脱分割中的空白“”字符串
var text = document.getElementById('textbox').value
var split = text.split(',')
如果我的文本框输入什么,它返回""
,因此使split
[""]
。这弄乱了我的程序,我怎么能轻松地删除空行看起来,或防止它没有使用for循环来循环?这种情况下所需的输出:[]
每当我将文本分割成列表时,如果列表为空,它将返回一个空白字符串。我怎样才能避免这种情况,或摆脱它?摆脱分割中的空白“”字符串
var text = document.getElementById('textbox').value
var split = text.split(',')
如果我的文本框输入什么,它返回""
,因此使split
[""]
。这弄乱了我的程序,我怎么能轻松地删除空行看起来,或防止它没有使用for循环来循环?这种情况下所需的输出:[]
如果您使用ES6,你可以做
split.filter((val) => val);
从由split
产生的数组中删除空字符串。在JavaScript中,"" == false
。
实际上''.filter(String)'为我工作!请添加到您的答案! – lol
@lol你可以回答你自己的问题,你知道... –
只需使用一个条件语句:
var split = text != '' ? text.split(',') : [];
这将使split
一个空数组,如果text
是一个空字符串。
此外,如果您希望测试对空的空间输入您可以使用它代替:
var split = (text.trim() != '') ? text.split(',') : [];
修订答:
基于从评论建议在这里,你可以使用这个替代代码更容易阅读,尽管更详细:
var split = [];
if(text.trim() != ''){
split = text.split(',');
}
你最好的答案可能来自这个堆栈问题: http://stackoverflow.com/questions/281264/remove-empty-elements-from-an-array-in-javascript –
你想得到什么返回,而不是空阵列? –
我想''''不'''“]' – lol