Как определить, является ли объект JavaScript пустым

Как определить, является ли объект JavaScript пустым

8 февраля 2023 г.

Определить новый объект в Javascript довольно просто, но что, если вы хотите узнать, пуст ли он? Например, {} — это пустой объект, но как мы фактически можем проверить, что это так?

let myObject = {}

Самый простой (и лучший) способ сделать это — использовать Object.keys().

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

let myObject = {}

console.log(Object.keys(myObject).length) // Returns 0!

Но подождите... Javascript хорошо известен своей странной обработкой типов, а новые конструкторы возвращают объект с нулевой длиной:

let myFunction = function() {
    console.log("hello")
}
console.log(Object.keys(new myFunction()).length)

К счастью, мы можем проверить, является ли что-то объектом, проверив его свойство constructor:

console.log(function myFunction() {}.constructor) // Function
console.log({}.constructor) // Object

Таким образом, мы можем проверить, является ли object пустым, если его конструктор является Object и имеет значение Object.keys() < код>0:

let empty = {}
let isObjEmpty = (obj) => {
    return Object.keys(obj).length === 0 && obj.constructor === Object
}

console.log(isObjEmpty(empty)); // Returns true, Object is empty!


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE