2016-11-11 67 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

謝謝大家對您的有效迴應。 @Janaka 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爲空或未定義,該怎麼辦?應該在功能上測試它。 – Will

+0

@will不是在一個名爲'isEmptyObject'的函數中,如果你把它改爲'isNullOrEmptyObject()',那麼也許吧,但是OP的例子是關於一個空對象的。 '我有一個變量var a = {};'無論如何,這是微不足道的......我確信OP可以弄清楚。 –

1

jQuery不會

function isEmptyObject(obj) { 
    var name; 
    for (name in obj) { 
     return false; 
    } 
    return true; 
} 
+0

這也將檢查繼承屬性。只要OP瞭解和選擇他們想要的。 –

0

在ECMA腳本5

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; 
}