Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как проверить, пустой ли объект

Короткий ответ

Object.keys() возвращает массив ключей. У пустого объекта их нет:

const filters = {};
 
console.log(Object.keys(filters).length === 0);

Результат:

true

null и undefined

Object.keys(null) выбрасывает ошибку. Если значения может не быть, проверьте это сначала:

const isEmpty = (value) => value == null || Object.keys(value).length === 0;
 
console.log(isEmpty({}));
console.log(isEmpty(null));
console.log(isEmpty({ page: 1 }));

Результат:

true
true
false

Частая ошибка

Пустой объект — истинное значение, поэтому if (obj) пустоту не определяет. Сравнение с {} тоже не работает:

const filters = {};
 
console.log(filters ? 'has filters' : 'empty');
console.log(filters === {});

Результат:

has filters
false

Функции из этого ответа

  • Object.keys — Возвращает массив имён свойств объекта.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.