2016-10-03 9 views
0
var foo = { bar: ''}; 

を強調する:私の知る限りではObject.isEmpty()_.isEmpty(Object)をJavaScriptの対、lodash、多くの場合、私はこのようなコード見てきました

if(foo.bar.isEmpty()){ //this line most of the time breaks 
     // do something 
    } 


    foo.bar.isEmpty() or foo.bar.isEmpty 

を、これではありませんネイティブJavaScript/jQuery。 LodashとUnderscoreがプロジェクトに含まれていても、これはうまくいかないようです。

ありLodashとアンダースコア でisEmpty()の実装があるが、それらを使用する唯一の方法は_.isEmpty(foo.bar)

私は空の配列をチェックする正しい方法は何ですか foo.bar.isEmpty()?

としてそれらを使用することはできませんなぜ

です、オブジェクトまたは文字列?すぐfoo.bar(またはfoo)など

+0

パート[lodash /アンダー哲学は任意のプロトタイプを拡張することではありません]を使用する必要があります確認するには

ます(http://そして、代わりに '_'名前空間上のすべてを公開します。したがって、これらのライブラリは 'foo.bar.isEmpty' – megawac

+0

にその機能を公開することはないので、foo.bar.isEmptyを使用すると正しくありません! – patz

答えて

1

undefinedであり、あなたが別の関数を連鎖しているundefinedメソッドisEmpty()を持っていないので、それの後に例isEmpty()のために、あなたのスクリプトが解除されます。しっかりとオブジェクトのプロパティの値は、プレーンjsの中に空の文字列を保持している場合、あなたはの

if (foo && foo.bar && foo.bar !== '') 
+0

よく空の文字列 ""は、サーバーコードによってフィールドがemtpy {}またはemtpy []である場合、おそらく_.isEmpty() – patz

関連する問題