2017-02-13 56 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によって生成された配列から空の文字列を削除するには

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

を行うことができます。 JavaScriptでは"" == falseです。

+1

実際、 '.filter(String)'は私のために働いていました!あなたの答えにそれを加えてください! – lol

+0

@ lolあなた自身の質問に答えることができます... –

1

ただ、条件文を使用します。

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

textが空の文字列である場合、これはsplit空の配列を作成します。あなたが入力して空のスペースに対してテストしたい場合は

また、あなたの代わりにこれを使用することができます:

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


UPDATED ANSWER:コメントからの提案に基づき

ここでは、このような代替コードを使用することができますが、これはよりわかりやすいですが、読みやすくなります。

var split = []; 

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

実際には、.filter(String)が私のために働いた!あなたの答えにそれを加えてください! – lol

+0

私は '.filter'を非標準的な方法として使用することを控え、あまり読み難いコードは得られません。 – ablopez

+0

@ lolあなたは自分の質問に答えることができます... –

関連する問題