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

В 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;
}

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

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

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

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