Количество элементов в объекте (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 // true45 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 = >;23 function isEmptyObj(object)4 for (let key in object)5 if (object.hasOwnProperty(key))6 return false;7 >8 >9 return true;10 >1112 console.log(isEmptyObj(order));13 // true
4. isEmpty (метод в библиотеке Lodash)
В библиотеке Lodash есть специальный метод, который принимает на вход как массивы так и объекты:
1_.isEmpty([1, 2, 3]);2 // false3_.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