Kuidas teada saada, kas objekt on tühi?
sobes.tech AI
Vastus AI-lt
Objekt loetakse "tühjaks", kui sellel puuduvad oma loetavad omadused.
Kontrollimise viisid:
-
Object.keys(): Tagastab stringide massiivi, mis esindab objekti loetavate omaduste nimesid. Kui massiiv on tühi, on objekt tühi.const myObject = {}; if (Object.keys(myObject).length === 0) { // Objekt on tühi } -
for...injahasOwnProperty(): Itereerib objekti loetavate omaduste (ka pärandatud) üle ja kontrollib, kas omadus on objekti oma.const myObject = {}; let isEmpty = true; for (const key in myObject) { if (Object.prototype.hasOwnProperty.call(myObject, key)) { isEmpty = false; break; } } if (isEmpty) { // Objekt on tühi }Object.prototype.hasOwnProperty.call()kasutatakse turvalisemaks kontrolliks, kunahasOwnPropertyvõib olla üle kirjutatud. -
JSON.stringify(): Muudab objekti JSON-stringiks. Tühi objekt{}muudetakse stringiks"{}"const myObject = {}; if (JSON.stringify(myObject) === '{}') { // Objekt on tühi }See meetod sobib lihtsate objektide jaoks, millel pole funktsioone ega tsüklilisi viiteid.
-
Object.getOwnPropertyNames(): Tagastab kõigi oma (mitte pärandatud) ja mitte-loetavate ning loetavate omaduste nimede massiivi (ka sümbolid).const myObject = {}; if (Object.getOwnPropertyNames(myObject).length === 0) { // Objekt on tühi } -
Object.getOwnPropertySymbols(): Tagastab kõigi oma sümbolsete omaduste massiivi. Kui objekt on tühi (ja tal pole sümbolseid omadusi), on see massiiv tühi.const myObject = {}; if (Object.getOwnPropertySymbols(myObject).length === 0 && Object.getOwnPropertyNames(myObject).length === 0) { // Objekt on tühi, kaasa arvatud sümbolid }
Valik sõltub kontekstist ja jõudluse nõuetest. Object.keys() ja JSON.stringify() on tavaliselt kõige kiirem ja lühim viis lihtsate juhtumite jaoks. Kõigi omaduste ja pärandatud omaduste arvestamiseks võivad olla vajalikud täiendavad kontrollid.