Как определить, является ли объект 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!
Оригинал