Hogyan lehet megtudni, hogy egy objektum üres-e?
sobes.tech MI
Válasz az MI-től
Egy objektum "üres"nak tekinthető, ha nincs saját felsorolható tulajdonsága.
Ellenőrzési módszerek:
-
Object.keys(): Visszaad egy tömböt, amely az objektum felsorolható saját tulajdonságainak neveit tartalmazza. Ha a tömb üres, az objektum üres.const myObject = {}; if (Object.keys(myObject).length === 0) { // Az objektum üres } -
for...inéshasOwnProperty(): Iterál az objektum felsorolható tulajdonságain (beleértve az öröklöttet is), és ellenőrzi, hogy a tulajdonság saját-e.const myObject = {}; let isEmpty = true; for (const key in myObject) { if (Object.prototype.hasOwnProperty.call(myObject, key)) { isEmpty = false; break; } } if (isEmpty) { // Az objektum üres }Az
Object.prototype.hasOwnProperty.call()biztonságosabb ellenőrzéshez van, mivel ahasOwnPropertyfelülíródhat az objektumon. -
JSON.stringify(): Átalakítja az objektumot JSON sztringgé. Egy üres{}objektum a"{}"sztringgé alakul.const myObject = {}; if (JSON.stringify(myObject) === '{}') { // Az objektum üres }Ez a módszer alkalmas egyszerű objektumokra, funkciók és ciklikus hivatkozások nélkül.
-
Object.getOwnPropertyNames(): Visszaad egy tömböt az összes saját (nem öröklött), felsorolható és nem felsorolható tulajdonságról (beleértve a szimbólumokat is).const myObject = {}; if (Object.getOwnPropertyNames(myObject).length === 0) { // Az objektum üres } -
Object.getOwnPropertySymbols(): Visszaad egy tömböt az összes saját szimbólum tulajdonságról az objektumban. Ha az objektum üres (és nincs szimbólum tulajdonsága), ez a tömb üres lesz.const myObject = {}; if (Object.getOwnPropertySymbols(myObject).length === 0 && Object.getOwnPropertyNames(myObject).length === 0) { // Az objektum üres, beleértve a szimbólumokat is }
A módszer kiválasztása a kontextustól és a teljesítményigényektől függ. A Object.keys() és a JSON.stringify() általában a leggyorsabb és legkoncisebb egyszerű esetekben. Az összes tulajdonságtípus és öröklött tulajdonság figyelembevételéhez további ellenőrzések lehetnek szükségesek.