web-dev-qa-db-fra.com

javascript - vérifie si l'objet est vide

J'essaie de créer un test javascript/jquery pour vérifier si mon objet est vide et ne le comprend pas.

Voici l'objet quand il contient quelque chose:

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

Et voici l'objet lorsqu'il est vide:

{"mergedSellerArray":{}}

C'est le test actuel que j'ai basé sur une autre réponse SO mais cela ne fonctionne pas:

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

Vous testiez sellers qui n'est pas vide car il contient mergedSellerArray. Vous devez tester 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 !");
}

28
Weedoze

Voici dans jQuery:

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

        var obj2={"mergedSellerArray":{"key1114":"1120"}};
	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/

2
sharif2008

Si vous utilisez la bibliothèque lodash, vous disposez d’un moyen élégant de vérifier un objet, un tableau, une carte ou un ensemble vide .. Je suppose que vous connaissez l’instruction ES6 Import.

import {isEmpty} from "lodash"

let obj = {};
console.log(isEmpty(obj)); //Outputs true.

let arr = [];
console.log(isEmpty(arr)); //Outputs true.

obj.name="javascript";
console.log(isEmpty(obj)); //Outputs false.

Donc, pour votre code, 

isEmpty(mergedSellerArray); //will return true if object is not empty.

J'espère que cette réponse a aidé.

1
Vasuki Dileep