Maison >interface Web >js tutoriel >Comment vérifier si un objet est vide en JavaScript (exemple de code)

Comment vérifier si un objet est vide en JavaScript (exemple de code)

不言
不言avant
2019-04-02 09:57:542475parcourir

Le contenu de cet article explique comment vérifier si un objet est vide en JavaScript (exemple de code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Il est facile de vérifier si un tableau est vide. Il suffit d'appeler directement la méthode length Alors, comment vérifier si un objet est vide❓

Le vide ici fait référence. à l'objet Pas de propriétés propres

Supposons qu'il y ait deux objets ici, l'un est obj et l'autre est un autreObj

let obj1 = {
    name: 'oli',
    child: {
        name: 'oliver'
    }
}

let obj2 = {
    [Symbol('name')]: 'alice'
}

let obj3 = Object.defineProperty({}, 'name', {
    value: 'alice',
    enumerable: false
})

let obj4 = Object.create(null)

// 我们需要一个函数,判断是否不含自有属性

isEmpty(obj1) // false
isEmpty(obj2) // false
isEmpty(obj3) // false
isEmpty(obj4) // true
❗️J'y ai réfléchi longtemps pour vérifier si l'objet a un attribut Symbol. Vous ne pouvez utiliser que la méthode getOwnPropertySymbols, s'il existe une meilleure méthode, veuillez laisser un message

Méthode 1 : Traverse

. for-in traversal et confirmer si une certaine clé existe via la méthode hasOwnProperty. Cette méthode Il n'est pas possible de parcourir les attributs dont l'énumérable est faux

const isEmptyObj = object => {
    if (!!Object.getOwnPropertySymbols(object).length) {
        return false
    }
    for (const key in object) {
        if (object.hasOwnProperty(key)) {
            return false
        }
    }
    return true
}

Méthode 2 : méthode des clés

Utilisez les clés de la méthode statique de l'objet, puis déterminez la longueur. Ce que les clés renvoient est elle-même peut énumérer les attributs, de sorte que ceux-ci ne peuvent pas être parcourus vers des attributs dont l'énumérable est faux

const isEmptyObj = object => {
    if (!!Object.getOwnPropertySymbols(object).length) {
        return false
    }
    if (Object.keys(object).length) {
        return false
    }
    return true
}

Méthode 3 : méthode JSON

Utiliser la méthode JSON Stringify pour convertir l'objet en chaîne Par rapport à la chaîne '{}', cette méthode ne peut pas obtenir les propriétés non traversables

.
const isEmptyObj = object => {
    if (!!Object.getOwnPropertySymbols(object).length) {
        return false
    }
    return JSON.stringify(object) === '{}'
}

Méthode 4 : méthode getOwnPropertyNames

Utiliser l'objet La méthode getOwnPropertyNames obtient tous les noms de propriétés, de sorte que même les propriétés non énumérables peuvent toujours être obtenues, ce qui est relativement correct méthode.

const isEmptyObj = object => {
    if (!!Object.getOwnPropertySymbols(object).length) {
        return false
    }
    if (!!Object.getOwnPropertyNames(object).length) {
        return false
    }
    return true
}

Comment vérifier si un objet est vide en JavaScript (exemple de code)

Version simplifiée :

const isEmptyObj = object => !Object.getOwnPropertySymbols(object).length && !Object.getOwnPropertyNames(object).length

[Recommandations associées : Tutoriel vidéo JavaScript]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer