js проверить что объект не пустой
Чтобы проверить, что объект не является пустым, можно с помощью метода Object.keys() получить массив ключей этого объекта, а потом сравнить длину массива с нулём.
const notEmptyObject = 1: 'a', 2: 'b', 3: 'c', >; const emptyObject = <>; console.log(Object.keys(notEmptyObject).length !== 0) // => true (объект не пустой) console.log(Object.keys(emptyObject).length !== 0) // => false (объект пустой)
Проверка на пустой объект в JavaScript
Зачастую в процессе работы с JavaScript возникает необходимость проверить, является ли определенный объект пустым или нет. Это особенно актуально при работе с данными, полученными из внешних источников, например, через AJAX-запросы. К примеру, может быть получен такой объект:
var obj = <>;
Это объект без свойств, то есть пустой. Как проверить его на пустоту?
Использование Object.keys()
Один из самых простых и распространенных способов проверить объект на пустоту — использовать метод Object.keys() . Этот метод возвращает массив, содержащий имена всех собственных (не унаследованных) свойств объекта. При проверке пустого объекта он вернет пустой массив.
Вот как это делается:
var obj = <>; if (Object.keys(obj).length === 0) < // Объект пуст >else < // Объект не пуст >
Если длина массива, возвращаемого Object.keys(obj) , равна нулю, это значит, что у объекта нет своих свойств, и он пуст.
Использование цикла for…in
Еще один способ проверить объект на пустоту — использовать цикл for. in , который перебирает все собственные и унаследованные свойства объекта. Если цикл не выполняется ни разу, это значит, что у объекта нет свойств, и он пуст.
var obj = <>; var isEmpty = true; for (var key in obj) < isEmpty = false; break; >if (isEmpty) < // Объект пуст >else < // Объект не пуст >
В этом коде переменная isEmpty изначально установлена в true , но если цикл for. in найдет хотя бы одно свойство, isEmpty станет false , и после цикла можно будет с уверенностью сказать, что объект не пуст.
Это два основных способа проверки объекта на пустоту в JavaScript. Важно помнить, что оба они проверяют только наличие свойств у объекта, а не их значения. Если свойство объекта имеет значение null или undefined , объект все равно будет считаться непустым.
Количество элементов в объекте (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
2023 © Все права защищены.
проверка объекта на пустоту
Необходимо проверить объект. если свойства отсутствуют — вывести в консоль true, в противном случае(при наличии свойств) false. Ниже приведен упрощенный(без проверки hasOwnProperty) код, который решает это.
1 2 3 4 5 6 7 8 9 10
function isEmpty(obj) { for (var key in obj) { return false; } return true; } var object = {}; console.log( isEmpty(object) ); // true
простой код, но не могу разобраться, как он работает.. т.е. я понимаю, что есть цикл for in, который должен пробегать по свойствам объекта object(пустого), есть переменная key, куда на каждой итерации должно записываться очередное свойство объекта, но все равно непонятна логика с return..
почему выводится true в данном случае?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Проверка Input на пустоту
Всем привет, такая проблема: есть форма, в ней инпуты со атрибутом required, но required не.
Проверка на пустоту поля Javascript
Как проверить поле с датой на пустоту? Помогите, пожалуйста (Вместо elem.length == 0) HTML.
Проверка нескольких textbox на пустоту, а также проверка их значения
Имеется textbox1, textbox2, textbox3, button1. Нужно сделать так, чтобы проверялось условие: Если.
Проверка на пустоту.
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls.
![]()
2240 / 1628 / 641
Регистрация: 07.08.2016
Сообщений: 3,928
for..in последовательно перебирает свойства объекта obj, имя каждого свойства записывается в key и вызывается тело цикла.
В данном случае объект пустой, в тело цикла функция не заходит и возвращает true
