2011-07-05 11 views
1

私はあなたの問題の解決策を見つけることができないたびにstackoverflowに実行するタイプではありませんが、これは本当に持っています私の頭が回転している。配列の未定義変数を非表示にする方法

は、どのように私は、配列の内部で未定義の変数を隠すん:

var state_zip = address.split(',')[2]; 

データを出力する際に​​、私は「未定義「の代わりに」」を出力する変数state_zipは空白たいです。

これらはどちらも私にとってはうまくいきませんでした。

ar more2 = address.split(',')[4];if (more2.split(',')[4]=="undefined"){more2=""} 
ar more2 = address.split(',')[4];if (more2.split(' ')=="undefined"){more2=""} 

私がこれを理解するのを助けることができる人なら、大変感謝します。私はバックエンドの開発者であるため、これは私の通常の環境から少し外れています。

+0

はそれをトリミングしてみ?また、そのデータが表示されていない場所をチェックして、空であれば "undefined"と答えるかどうか確認してください。 – BugFinder

答えて

3

typeofを使用してみてください:

if ('undefined' === typeof state_zip) 
    state_zip = ''; 
+1

真ですが、最初はそこに 'undefined'がないようにしてください。 –

+0

@Shadow Wizard:良い点 – jerluc

1
> var address = 'asd'; 
> var state_zip = address.split(',')[2]; 
> console.log(state_zip); 
undefined 
> var state_zip = address.split(',')[2] || ''; 
> console.log(state_zip); 

> 
0

undefinedの周りに引用符を使用しないでください。あなたは次のようにundefinedをチェックする必要があります -

var more2 = address.split(',')[4];if (more2.split(',')[4]==undefined){more2=""} 
var more2 = address.split(',')[4];if (more2.split(' ')==undefined){more2=""} 

あなたはundefined周りの引用符を使用するときは、基本的にその変数が文字列"undefined"が含まれているかどうかをチェックします。

jsfiddle

0

exampleはjavascriptのキーワードはundefinedでありませんか?あなたはできるはずです

if(more2.split(',')[4] == undefined) more2 = ""; 

引用符は必要ありません。

0

配列の長さをチェックしてください:

var arrAddress = address.split(','); 
var more2 = (arrAddress.length >= 5) ? arrAddress[4] : ""; 

あなたがその境界を越えJSの配列を読み込むしようとすると、未定義の取得 - ので、ちょうどあなたが境界内にいることを確認してくださいそうでない場合は、空の文字列を割り当てます。あなたはかつてこのような機能を有することで、それは、より汎用的にすることができ

function GetItem(array, index) { 
    return (index >= 0 && index < array.length) ? array[index] : ""; 
} 

次に好きそれを呼び出す:

var more2 = GetItem(arrAddress, 4); 
var more3 = GetItem(arrAddress, 5); 
... 
0

私はjqueryのを使用してあなたのような何かを行うことができると思う。

VAR more2 = address.split( '、');

$ .each(more2、機能(I、L){

more2[i] = (more2[i] == undefined) ? '' : more2[i]; 
}); 
0

あなたはパッド、それが短すぎるかどう列ができ、

var template = ",,,," //a comma per expected entry 
var address = "123 street,town" 

address = (address + template.substr(address.split(',').length)).split(","); 

>>address = [123 street,town,,] 

var state_zip = address[2]; 

>>state_zip = "" 
関連する問題