Как проверить пустой ли объект
Перейти к содержимому

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

  • автор:

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

Напишите функцию isEmpty(obj) , которая возвращает true , если у объекта нет свойств, иначе false .

Должно работать так:

let schedule = <>; alert( isEmpty(schedule) ); // true schedule["8:30"] = "get up"; alert( isEmpty(schedule) ); // false

Просто в цикле перебираем свойства объекта и возвращаем false , как только встречаем свойство.

function isEmpty(obj) < for (let key in obj) < // если тело цикла начнет выполняться - значит в объекте есть свойства return false; >return true; >

Методы объектов JS: Как проверить объект JavaScript на пустоту?

Проверить является ли объект пустым – одна из постоянно встречающихся задач в повседневной жизни Javascript разработчика.

Например, работая над очередной фичей в React приложении, требовалось делать активной кнопку “Подтвердить” только в том случае, когда объект const order = <> содержал свойства, то есть не был пустым.

В случае если бы переменная order содержала массив, то все было бы просто:

1const order = [];
2 const emptyOrder = !order.length;
3 // true
4
5 button disabled=emptyOrder>>Подтвердить/button>;

Рассмотрим 4 метода объектов js, которые помогут проверить объект на пустоту.

1. Object.keys()

Первый способ — использовать метод Object.keys() для получения нового массива из ключей (свойств) объекта. Если свойства отсутствуют, то новый массив будет пустой.

1const order = >;
2 const emptyOrder = !Object.keys(order).length;
3 // true

Тоже самое можно записать так:

1const emptyOrder = Object.keys(order).length === 0;
2 // true

Далее прописываем переменную для свойства disabled нашей кнопки (делаем ее неактивной):

1button disabled=emptyOrder>>Подтвердить/button>

2. JSON.stringify()

Второй способ проверить объект на пустоту — использовать метод JSON.stringify() , чтобы перевести наш объект в строчный формат и сравнить результат со строкой ‘<>‘ .

1const order = >;
2 const emptyOrder = JSON.stringify(order) === '<>';
3 // true

Добавляем наше условие:

1button disabled=emptyOrder>>Подтвердить/button>

3. Цикл for..in

Данный способ интересен тем, что его поддерживают более старые версии браузеров. Ознакомиться с текущим состоянием браузерной совместимости цикла for..in можно здесь ).

Давайте создадим функцию, которая принимает на вход объект и использует цикл for..in , чтобы пробежаться по ключам объекта. Далее используем метод object.hasOwnProperty() для проверки наличия ключа.

Функция возвращает true , в случае если ключи отсутствуют. Мы получим значение false , если в объекте присутствует хотя бы один ключ.

1const order = >;
2
3 function isEmptyObj(object)
4 for (let key in object)
5 if (object.hasOwnProperty(key))
6 return false;
7 >
8 >
9 return true;
10 >
11
12 console.log(isEmptyObj(order));
13 // true

4. isEmpty (метод в библиотеке Lodash)

В библиотеке Lodash есть специальный метод, который принимает на вход как массивы так и объекты:

1_.isEmpty([1, 2, 3]);
2 // false
3_.isEmpty( a: 1 >);
4 // false

Методы массивов JavaScript (11 методов)

Переменные JavaScript var, let и const (в чем отличие и когда использовать)?

Популярные статьи

  • Задачи JavaScript для начинающих
  • Типы данных в JavaScript
  • Как проверить объект JavaScript на пустоту?
  • Обработчики Событий в JS
  • Деструктуризация в Javascript
  • Массивы Javascript: перебирающие методы
  • Операторы Spread и Rest в Javascript
  • Объект Date: Текущая Дата и Время в Javascript
  • Переменные JavaScript var, let и const

Проверьте, пуст ли объект в JavaScript

В этом посте мы обсудим, как проверить наличие пустого объекта в JavaScript.

Есть несколько способов создать пустой объект в JavaScript, например:

let obj = new Object();
let obj = new Object(undefined);
let obj = new Object(null);
let obj = <>;

Чтобы проверить, пуст ли объект в JavaScript, мы можем использовать любую из следующих функций:

1. Использование Object.entries() функция

The Object.entries() Функция возвращает массив собственных пар свойств [ключ, значение] объекта. Мы также можем проверить длину этого массива, чтобы определить, имеет ли объект какие-либо собственные свойства. Мы можем использовать это как:

Проверка на пустоту значения элемента массива JS

Необходимо проверить, есть ли у элемента какое-нибудь значение, то есть не пустой ли он. Иными словами, если он пустой — выполнять if, я делаю так, не работает.

if (clients[msg[1]] == "")

То есть даже если он пустой — условие не срабатывает.
Отслеживать
задан 6 июн 2019 в 22:21
Максим Закревский Максим Закревский
347 1 1 золотой знак 5 5 серебряных знаков 14 14 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Для начала вам нужно определиться с тем, что вы понимаете под «пустыми элементами».

Посмотрите этот код, в зависимости от того, как мы формулируем условие, пустыми могут быть как falsy-значения так и какие-то конкретные значения.

Чтобы точнее понимать происходящее, изучите сравнение в js

const arr = ['string', 1, undefined, null, 0, '', [], <>, false, true, NaN]; let empty = [] for (let i in arr) < if (!arr[i]) < empty.push(`$("$")`) > > console.log(empty.join(", "))

Получим undefined / null -значения:

const arr = ['string', 1, undefined, null, 0, '', [], <>, false, true, NaN]; let empty = [] for (let i in arr) < if (arr[i] == undefined) < empty.push(`$("$")`) > > console.log(empty.join(", "))

Получим undefined -значения:

const arr = ['string', 1, undefined, null, 0, '', [], <>, false, true, NaN]; let empty = [] for (let i in arr) < if (arr[i] === undefined) < empty.push(`$("$")`) > > console.log(empty.join(", "))

Получим null -значения:

const arr = ['string', 1, undefined, null, 0, '', [], <>, false, true, NaN]; let empty = [] for (let i in arr) < if (arr[i] === null) < empty.push(`$("$")`) > > console.log(empty.join(", "))

Ищем пустые строки, но снова получим falsy -значения (некоторые). При этом значения undefined / null / NaN уже не попадут в выборку:

const arr = ['string', 1, undefined, null, 0, '', [], <>, false, true, NaN]; let empty = [] for (let i in arr) < if (arr[i] == "") < empty.push(`$("$")`) > > console.log(empty.join(", "))

Получим только пустые строки:

const arr = ['string', 1, undefined, null, 0, '', [], <>, false, true, NaN]; let empty = [] for (let i in arr) < if (arr[i] === "") < empty.push(`$("$")`) > > console.log(empty.join(", "))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *