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