Как проверить объект на пустоту в javascript?

Пользователь

от eudora , в категории: JavaScript , 3 года назад

Как проверить объект на пустоту в javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kenya , 2 года назад

@eudora 

В JavaScript существует несколько способов проверить объект на пустоту:

  1. Используйте оператор typeof:
1
2
3
if (typeof obj === "undefined" || obj === null) {
  // объект пуст
}


  1. Используйте свойство Object.keys():
1
2
3
if (Object.keys(obj).length === 0) {
  // объект пуст
}


  1. Используйте свойство Object.entries():
1
2
3
if (Object.entries(obj).length === 0) {
  // объект пуст
}


  1. Используйте свойство Object.getOwnPropertyNames():
1
2
3
if (Object.getOwnPropertyNames(obj).length === 0) {
  // объект пуст
}


Обратите внимание, что эти методы будут считать объект пустым, если он не содержит собственных свойств (т.е. не унаследованных свойств). Если вам нужно учитывать также и унаследованные свойства, можете использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
function isEmpty(obj) {
  for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
      return false;
    }
  }
  return true;
}

if (isEmpty(obj)) {
  // объект пуст
}


Пользователь

от brook , год назад

@eudora 

В JavaScript есть несколько способов проверки объекта на пустоту:

  1. С помощью оператора Object.keys():
1
2
3
4
5
const obj = {};

if (Object.keys(obj).length === 0) {
  console.log('Этот объект пуст');
}


  1. С помощью цикла for...in:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
const obj = {};

let isEmpty = true;

for (let key in obj) {
  isEmpty = false;
  break;
}

if (isEmpty) {
  console.log('Этот объект пуст');
}


  1. С помощью JSON.stringify():
1
2
3
4
5
const obj = {};

if (JSON.stringify(obj) === '{}') {
  console.log('Этот объект пуст');
}