Как проверить, пустой ли объект
Короткий ответ
Object.keys() возвращает массив ключей. У пустого объекта их нет:
const filters = {};
console.log(Object.keys(filters).length === 0);Результат:
truenull и 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 — Возвращает массив имён свойств объекта.