Obyektin boş olub olmadığını necə bilmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Obyekt özünün enumerasiya olunan özəllikləri yoxdursa, onu "boş" hesab edir.
Yoxlama üsulları:
-
Object.keys(): Obeyektin özünə məxsus enumerasiya olunan özəlliklərinin adlarını göstərən sətirlər massivini qaytarır. Əgər massiv boşdursa, obyekt boşdur.const myObject = {}; if (Object.keys(myObject).length === 0) { // Obyekt boşdur } -
for...invəhasOwnProperty(): Obeyektin enumerasiya olunan özəllikləri üzərində iterasiya edir (mirasa alınanlar daxil olmaqla) və özəlliyin özəllik olduğunu yoxlayır.const myObject = {}; let isEmpty = true; for (const key in myObject) { if (Object.prototype.hasOwnProperty.call(myObject, key)) { isEmpty = false; break; } } if (isEmpty) { // Obyekt boşdur }Object.prototype.hasOwnProperty.call()daha təhlükəsiz yoxlama üçün istifadə olunur, çünkihasOwnPropertyobyektə yenidən təyin oluna bilər. -
JSON.stringify(): Obeyektin JSON sətirinə çevrilməsi. Boş obyekt{}sətirə çevrildikdə,"{}"olur.const myObject = {}; if (JSON.stringify(myObject) === '{}') { // Obyekt boşdur }Bu metod sadə obyektlər üçün uyğundur, funksiyalar və dövr edən referanslar olmadan.
-
Object.getOwnPropertyNames(): Bütün özəlliklərin (mirasa alınmayanlar daxil olmaqla) adlarını ehtiva edən massiv qaytarır (simgələr daxil olmaqla).const myObject = {}; if (Object.getOwnPropertyNames(myObject).length === 0) { // Obyekt boşdur } -
Object.getOwnPropertySymbols(): Obeyektin özəllik simvoliklərinin massivini qaytarır. Əgər obyekt boşdursa (və simvolik özəllikləri yoxdursa), bu massiv boş olacaq.const myObject = {}; if (Object.getOwnPropertySymbols(myObject).length === 0 && Object.getOwnPropertyNames(myObject).length === 0) { // Obyekt boşdur, simvolik özəlliklər daxil olmaqla }
Metod seçimi kontekstdən və performans tələblərindən asılıdır. Object.keys() və JSON.stringify() adətən ən sürətli və qısa olur sadə hallarda. Bütün özəllik növlərini və miras alınan özəllikləri nəzərə almaq üçün əlavə yoxlamalar lazım ola bilər.