2017-03-15 108 views
4

我正在嘗試創建javascript/jquery測試來檢查我的對象是否爲空並且無法弄清楚。javascript - 檢查對象是否爲空

這裏是對象時,它有它的東西:

{"mergedSellerArray":{"key1114":"1120"}} 

這裏是對象時空:

{"mergedSellerArray":{}} 

這是當前測試我已經基於另一個SO回答,但這是行不通的:

var sellers = JSON.stringify({mergedSellerArray}); 
if(Object.keys(sellers).length === 0 && sellers.constructor === Object) { 
    console.log("sellers is empty!"); 
} 
+2

我s'賣家'? – stackoverfloweth

+1

如果'sellers'是外部對象,那麼它*不是*空的,並且您必須編寫一些代碼來檢查它是否符合您的預期狀態。 – zzzzBov

+0

測試構造函數有什麼意義? – Pointy

回答

17

您在測試sellers這是不是空的,因爲它包含mergedSellerArray。你需要測試sellers.mergedSellerArray

let sellers = { 
 
    "mergedSellerArray": {} 
 
}; 
 
if (Object.keys(sellers.mergedSellerArray).length === 0 && sellers.mergedSellerArray.constructor === Object) { 
 
    console.log("sellers is empty!"); 
 
} else { 
 
    console.log("sellers is not empty !"); 
 
}

0

這裏是jQuery的:

$(document).ready(function(){ 
 
\t var obj={"mergedSellerArray":{}}; 
 
\t alert("is empty: "+$.isEmptyObject(obj.mergedSellerArray)); 
 

 
     var obj2={"mergedSellerArray":{"key1114":"1120"}}; 
 
\t alert("is empty: "+$.isEmptyObject(obj2.mergedSellerArray)); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

jsfidle:https://jsfiddle.net/nyqgbp38/