JS check object empty – How to Check whether an Object is Empty in JavaScript?

JS check object empty: In this article, we are going to check whether the object is empty or not in Javascript

Check whether an Object is Empty in JavaScript?

Javascript check object empty: We can check whether the object is empty or NOT in a number of ways. Let us see them one by one:

Method #1: Using Object.keys() Method

In JavaScript, use the following steps to determine whether an object is empty:

  • Pass the object to the ‘Object.keys’ method to obtain an array of all the keys of an object
  • Access the length property on the array.
  • If the length of the keys is equal to 0, the object is empty.

Using ‘Object.keys’ on an Empty Object

// This Supports in IE 9-11
// Declare an empty object 
const object = {};

// Check if the above object is empty using the Object.keys and length attribute
const chk_isEmpty = Object.keys(object).length === 0;
// If it is empty it prints true, else false
console.log(chk_isEmpty)

Output:

true

Explanation:

Here, the Object.keys() method is used to get an array of all of the keys of an object.

Using ‘Object.keys’ on a Non-Empty Object

// This Supports in IE 9-11
// Declare an empty object 
const object = {1:"Hello", 2:"this is", 3:"Btechgeeks"};

// Check if the above object is empty using the Object.keys and length attribute
const chk_isEmpty = Object.keys(object).length === 0;
// If it is empty it prints true, else false
console.log(chk_isEmpty)

Output:

false

Explanation:

Here the given object is not empty, hence it returns false

NOTE:

If the object has no key-value pairs (if it is empty), the Object.keys method returns an empty array.

Method #2: Iterating Over the Properties of Object

Another way is to iterate over the properties of an object. If the object has even a single iteration, it is not empty.

Example

// This supports in IE 6-11

// Declare an empty object and store it in a variable
const gvn_obj = {};

// Create a function say checkIsEmpty by passing the object 
// as an argument to it.
function checkIsEmpty(object) {
  // Iterate over the properties of an object using the for loop.
  // Check If the object has even a single iteration(object is not empty)
  for (const property in object) {
    // As the object is NOT empty, return false  
    return false;
  }
  // As the object is empty, return true  
  return true;
}

// Pass the given object as an argument to the above checkIsEmpty
// function and print the result
console.log(checkIsEmpty(gvn_obj)); 

Output:

true

Method #3: Using Object.entries() Method (ECMA 7+)

// Declare an empty object and store it in a variable
const gvn_obj = {};

// Check if the above object is empty using the Object.entries and length attribute
const chk_isEmpty = Object.entries(gvn_obj).length === 0 && gvn_obj.constructor === Object

//If it is empty it prints true, else false
console.log(chk_isEmpty)

Output:

true

Method #4: Using hasOwnProperty() function (Pre-ECMA 5)

Example1

// Declare an empty object and store it in a variable
const gvn_obj = {};

// Create a function say checkIsEmpty by passing the object 
// as an argument to it.
function checkIsEmpty(gvn_obj) {
  for(var property in gvn_obj) {
     // using hasOwnProperty() function to check if an object is empty or NOT
    if(gvn_obj.hasOwnProperty(property)) {
      return false;
    }
  }
  return JSON.stringify(gvn_obj) === JSON.stringify({});
}

// Pass the given object as an argument to the above checkIsEmpty
// function and print the result
console.log(checkIsEmpty(gvn_obj));

Output:

true

Example2

// Declare an object and store it in a variable
const gvn_obj = {1:"Hello", 2:"this is", 3:"Btechgeeks"};

// Create a function say checkIsEmpty by passing the object 
// as an argument to it.
function checkIsEmpty(gvn_obj) {
  for(var property in gvn_obj) {
     // using hasOwnProperty() function to check if an object is empty or NOT
    if(gvn_obj.hasOwnProperty(property)) {
      return false;
    }
  }
  return JSON.stringify(gvn_obj) === JSON.stringify({});
}

// Pass the given object as an argument to the above checkIsEmpty
// function and print the result
console.log(checkIsEmpty(gvn_obj));

Output:

false