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 }
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!