Heim  >  Artikel  >  Web-Frontend  >  So prüfen Sie, ob ein Objekt in JavaScript leer ist (Codebeispiel)

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

不言
不言nach vorne
2019-04-02 09:57:542420Durchsuche

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
❗️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
}

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

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) === '{}'
}

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
}

Vereinfachte Version:

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

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

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen