2016-11-11 9 views
1

私は変数var a = {}を持っています。Javascript空のオブジェクトで変数をチェックする条件がある場合

if (a !==null) { 
// Entering here if var a has empty object but i don't want to enter. 
} 

if (a == null) { 
// Want to enter into this condition if var a has empty object. 
} 

私はこのような条件を書くには、== {}を与えるようにいくつかの方法を試しましたが、それでも最初の条件になります。その状態を確認する適切な方法を教えてください。

+0

はあなたの有効回答ありがとうございました。 @ジャナカdissanayake応答は便利でした。 – suman

答えて

2

まずオプション

var a = null; 

番目のオプション

if (a !==null && JSON.stringify(a) !== '{}') {..} 
2

function isEmptyObject(obj) { 
 
    return Object.keys(obj).length == 0; 
 
} 
 

 
var a = {}; 
 

 
if (isEmptyObject(a)) { 
 
    console.log('emptyOject') 
 
}

+0

aがnullまたは未定義の場合はどうなりますか?それを機能的にテストする必要があります。 – Will

+0

@will isNullOrEmptyObject()に変更すると 'isEmptyObject'という関数にはありませんが、OPの例は空のオブジェクトに関するものです。 '私は変数var a = {};を持っています。どんな場合でも、それは簡単です...私はOPがそれを理解することができると確信しています。 –

1

jQueryの

function isEmptyObject(obj) { 
    var name; 
    for (name in obj) { 
     return false; 
    } 
    return true; 
} 
を行います
+0

これは継承されたプロパティもチェックします。 OPが理解し、彼らが望むものを選ぶ限り。 –

0
ECMAスクリプトで
var objInTest = {}; 

function isEmpty(obj) { 
    return Object.keys(obj).length === 0; 
} 

前ECMAスクリプト5

function isEmpty(obj) { 
    for(var prop in obj) { 
     if(obj.hasOwnProperty(prop)) 
      return false; 
    } 
    return true; 
} 
関連する問題