Heim > Web-Frontend > js-Tutorial > Hauptteil

So prüfen Sie, ob ein Objekt in JavaScript leer ist (Codebeispiel)

不言
Freigeben: 2019-04-02 09:57:54
nach vorne
2434 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit der Überprüfung, ob ein Objekt in JavaScript leer ist (Codebeispiel). Ich hoffe, dass es für Sie hilfreich ist.

Es ist einfach, zu überprüfen, ob ein Array leer ist. Rufen Sie einfach direkt die Längenmethode auf. So überprüfen Sie, ob ein Objekt leer ist zum Objekt Keine eigenen Eigenschaften

Angenommen, es gibt hier zwei Objekte, eines ist obj und das andere ist ein anderesObj

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
Nach dem Login kopieren
❗️Ich habe lange darüber nachgedacht, ob das Objekt hat ein Symbol-Attribut. Sie können nur die Methode getOwnPropertySymbols verwenden. Wenn es einen besseren Weg gibt, können Sie gerne eine Nachricht hinterlassen. beim Durchlaufen und Bestätigen, ob ein Schlüssel über die Methode hasOwnProperty vorhanden ist. Diese Methode kann nicht zum Attribut

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

übergehen, dessen Aufzählungsmethode „false“ ist Verwenden Sie die statischen Methodenschlüssel des Objekts und beurteilen Sie dann die Länge. Der Schlüssel ergibt, dass er durch sich selbst aufgezählt werden kann, sodass er nicht auf Attribute übertragen werden kann, deren Aufzählungswert falsch ist
const isEmptyObj = object => {
    if (!!Object.getOwnPropertySymbols(object).length) {
        return false
    }
    if (Object.keys(object).length) {
        return false
    }
    return true
}
Nach dem Login kopieren

Methode 3 : JSON-Methode

Verwenden Sie die JSON-Stringify-Methode, um das Objekt in eine Zeichenfolge zu konvertieren, und verwenden Sie zum Vergleich die Zeichenkette „{}“. Dieselbe Methode kann die nicht durchlaufbaren Eigenschaften nicht abrufen

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

Methode 4: getOwnPropertyNames-Methode

Verwenden Sie die getOwnPropertyNames-Methode von Object, um alle Eigenschaftsnamen abzurufen, sodass auch nicht aufzählbare Attribute weiterhin abgerufen werden können, was eine relativ gute Methode ist .

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

Vereinfachte Version:

const isEmptyObj = object => !Object.getOwnPropertySymbols(object).length && !Object.getOwnPropertyNames(object).length
Nach dem Login kopieren

[Verwandte Empfehlungen:

JavaScript-Video-Tutorial

]

Das obige ist der detaillierte Inhalt vonSo prüfen Sie, ob ein Objekt in JavaScript leer ist (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage