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

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

  • автор:

Количество элементов в объекте (object length)

В данном посте мы разберем как проверить сколько элементов содержит объект и напишем функцию для проверки объекта на пустоту.

В JavaScript у объектов нет свойства length , как у массивов. Поэтому мы не можем просто написать obj.length , чтобы получить «длину объекта». Но мы можем сделать это другим способом.

Как проверить количество элементов в объекте JS?

Для этого мы можем воспользоваться методом Object.keys() , чтобы получить все ключи в массив и затем уже у массива воспользоваться свойством length , чтобы получить количество элементов:

const someObj = < 'key1': 'value 1', 'key2': 'value 2', 'key3': 'value 3', 'key4': 'value 4', >const objectLength = Object.keys(someObj).length; console.log(objectLength); // 4

Теперь на основании этого давайте напишем функцию, которая будет показывать длину объекта, а сам объект мы будем передавать параметром в эту функцию:

const countObjProperties1 = (obj) => < return Object.keys(obj).length; >console.log(countObjProperties2(someObj)); // 4

Также есть второй вариант, сделать это с помощью цикла for in по объекту:

const countObjProperties2 = (obj) => < let count = 0; for (let key in obj) < if (obj.hasOwnProperty(key)) count++; >return count; > console.log(countObjProperties2(someObj)); // 4

Для чего мы тут используем hasOwnProperty вы можете разобраться в этой статье.

Также можно добавить отдельный метод глобальному объекту и вызывать его при необходимости:

Object.size = countObjProperties1; console.log(Object.size(someObj)); // 4

Проверка на пустой объект

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

const isObjectEmpty = (obj) =>

В зависимости от вашей задачи, можно также добавить проверку объект ли нам вообще попал в параметр или нет.

Ваши вопросы и комментарии:

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

Свежие записи

  • MySQL IS NULL — проверка поля на NULL
  • MySQL LIKE — поиск по паттерну
  • Between MySQL — оператор для выборки по диапазону значений
  • MySQL IN и NOT IN — несколько условий
  • MySQL WHERE — синтаксис и примеры

Копирование материалов разрешено только с ссылкой на источник Web-Dev.guru
2024 © Все права защищены.

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

Напишите функцию 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; >

Количество элементов в объекте (object length)

В данном посте мы разберем как проверить сколько элементов содержит объект и напишем функцию для проверки объекта на пустоту.

В JavaScript у объектов нет свойства length , как у массивов. Поэтому мы не можем просто написать obj.length , чтобы получить «длину объекта». Но мы можем сделать это другим способом.

Как проверить количество элементов в объекте JS?

Для этого мы можем воспользоваться методом Object.keys() , чтобы получить все ключи в массив и затем уже у массива воспользоваться свойством length , чтобы получить количество элементов:

const someObj = < 'key1': 'value 1', 'key2': 'value 2', 'key3': 'value 3', 'key4': 'value 4', >const objectLength = Object.keys(someObj).length; console.log(objectLength); // 4

Теперь на основании этого давайте напишем функцию, которая будет показывать длину объекта, а сам объект мы будем передавать параметром в эту функцию:

const countObjProperties1 = (obj) => < return Object.keys(obj).length; >console.log(countObjProperties2(someObj)); // 4

Также есть второй вариант, сделать это с помощью цикла for in по объекту:

const countObjProperties2 = (obj) => < let count = 0; for (let key in obj) < if (obj.hasOwnProperty(key)) count++; >return count; > console.log(countObjProperties2(someObj)); // 4

Для чего мы тут используем hasOwnProperty вы можете разобраться в этой статье.

Также можно добавить отдельный метод глобальному объекту и вызывать его при необходимости:

Object.size = countObjProperties1; console.log(Object.size(someObj)); // 4

Проверка на пустой объект

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

const isObjectEmpty = (obj) =>

В зависимости от вашей задачи, можно также добавить проверку объект ли нам вообще попал в параметр или нет.

Ваши вопросы и комментарии:

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

Свежие записи

  • MySQL IS NULL — проверка поля на NULL
  • MySQL LIKE — поиск по паттерну
  • Between MySQL — оператор для выборки по диапазону значений
  • MySQL IN и NOT IN — несколько условий
  • MySQL WHERE — синтаксис и примеры

Копирование материалов разрешено только с ссылкой на источник Web-Dev.guru
2024 © Все права защищены.

Методы объектов 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

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

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