В данном посте мы разберем как проверить сколько элементов содержит объект и напишем функцию для проверки объекта на пустоту.
В 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) => { return !Object.keys(obj).length; }
В зависимости от вашей задачи, можно также добавить проверку объект ли нам вообще попал в параметр или нет.
Добавить комментарий