2017-03-15 20 views
4

Ich versuche zu Javascript/Jquery Test zu erstellen, um zu überprüfen, ob mein Objekt leer ist und es nicht herausfinden kann.Javascript - überprüfen, ob das Objekt leer ist

Hier ist das Objekt, wenn es etwas in sich hat:

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

Und hier ist das Objekt, wenn sie leer sind:

{"mergedSellerArray":{}} 

Dies ist der aktuelle Test, den ich auf eine andere Basis haben, so zu antworten, aber es funktioniert nicht:

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

, was ich s 'Verkäufer'? – stackoverfloweth

+1

Wenn "Verkäufer" das äußere Objekt ist, dann ist es * nicht * leer, und Sie müssen Code schreiben, um zu überprüfen, ob es dem erwarteten Status entspricht. – zzzzBov

+0

Worauf kommt es an, den Konstruktor zu testen? – Pointy

Antwort

17

Sie testen sellers, die nicht leer ist, weil es enthält mergedSellerArray. Sie müssen 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

Hier in jQuery testen:

$(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/

Verwandte Themen