dr.Brain

doctor Brain

мир глазами веб-разработчика

Пустой объект

узнаем - является ли JavaScript объект пустым различными способами

dr.Brain

время чтения 2 мин.

Photo by Dewang Gupta on Unsplash

Является ли объект пустым - довольно простая и распространенная задача в JavaScript, имеющая несколько вариантов решения. В этой статье мы рассмотрим наиболее популярные подходы к реализации такой задачи.

Итак, приступим.

Для начала, используя литеральный синтаксис, мы создадим пустой объект:

const obj = {}

После этого попробуем сравнить только что созданный пустой объект obj с другим пустым объектом, например, так:

console.log(obj === {}) // false

Мы сравнили два пустых объекта и получили false. Разберемся: с чем это связано? Ведь, фактически, мы выполнили сравнение:

console.log({} === {}) // false

Причина такого результата кроется в том, что, сравнивая объекты, мы сравниваем ссылки, а не значения. Ссылки на сравниваемые объекты не будут идентичны, даже когда содержимое этих объектов будет одинаковым.

Так, как же узнать - является ли объект пустым или нет?

Object.Keys

Object.keys вернет массив, содержащий имена свойств объекта. Если длина массива будет равнятся 0, объект является пустым.

function isEmpty(obj) {
    return Object.keys(obj).length === 0;
}

Подобный трюк, можно проделать и с Object.values или Object.entries.

Пожалуй, это самый простой способ узнать - является ли объект пустым.

JSON.stringify

Если мы преобразуем объект в строку и получаем только открывающие и закрывающие фигурные скобки, можно смело утверждать, что объект пуст.

function isEmptyObject(obj){
    return JSON.stringify(obj) === '{}';
}

Цикл for…in

Можно перебрать свойства объекта с помощью цикла for...in

function isEmpty(obj) {
    for(var prop in obj) {
        if(obj.hasOwnProperty(prop))
            return false;
    }

    return true;
}

В приведенном выше коде создана функция isEmpty. Если объект имеет хотя бы одно свойство, он войдет в цикл и вернет false, в случае, если объект пуст, он вернет true.

Underscore.js

Узнать, является ли объект пустым, можно и с помощью библиотеки underscore.js.

_.isEmpty(obj);

Функция библиотеки _.isEmpty() позволяет проверить - является ли сущность пустой: будь то строка, список, массив, объект или что-то иное. Функция определяет длину переданного аргумента и возвращает true, если аргумент не содержит никаких элементов.

jQuery

С помощью библиотеки jQuery так же можно узнать - явлется ли объект пустым.

jQuery.isEmptyObject(obj); 

Спасибо за внимание.


Написано по материалам статьи Arpit Jain “Different ways to check If Object is empty or not”.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.