Obyekt bo'sh yoki yo'qligini qanday bilish mumkin?
sobes.tech AI
AIdan javob
Obyektni o'ziga xos ko'rsatiladigan xususiyatlar bo'lmasa, "bo'sh" deb hisoblanadi.
Tekshirish usullari:
-
Object.keys(): Ob'ektning o'ziga xos ko'rsatiladigan xususiyatlar nomlarini ifodalovchi satrlar massivini qaytaradi. Agar massiv bo'sh bo'lsa, obyekt bo'sh.const myObject = {}; if (Object.keys(myObject).length === 0) { // Ob'ekt bo'sh } -
for...invahasOwnProperty(): Ob'ektning ko'rsatiladigan xususiyatlari bo'ylab iteratsiya qiladi (meros olinganlar ham) va xususiyatning o'ziga xosligini tekshiradi.const myObject = {}; let isEmpty = true; for (const key in myObject) { if (Object.prototype.hasOwnProperty.call(myObject, key)) { isEmpty = false; break; } } if (isEmpty) { // Ob'ekt bo'sh }Object.prototype.hasOwnProperty.call()xavfsizroq tekshirish uchun ishlatiladi, chunkihasOwnPropertyobyektga qayta yozilgan bo'lishi mumkin. -
JSON.stringify(): Ob'ektni JSON satriga aylantiradi. Bo'sh obyekt{}satrga aylantirilganda,"{}"bo'ladi.const myObject = {}; if (JSON.stringify(myObject) === '{}') { // Ob'ekt bo'sh }Bu usul oddiy obyektlar uchun, funksiyalar va siklik havolalar bo'lmagan holatlar uchun mos keladi.
-
Object.getOwnPropertyNames(): Obyektning barcha o'ziga xos (meros olingan emas), ko'rsatiladigan va ko'rsatilmaydigan (simg'ilarni ham) xususiyatlar nomlarini o'z ichiga olgan massivni qaytaradi.const myObject = {}; if (Object.getOwnPropertyNames(myObject).length === 0) { // Ob'ekt bo'sh } -
Object.getOwnPropertySymbols(): Obyektning o'ziga xos simvol xususiyatlarining massivini qaytaradi. Agar obyekt bo'sh bo'lsa (va simvol xususiyatlari bo'lmasa), bu massiv bo'sh bo'ladi.const myObject = {}; if (Object.getOwnPropertySymbols(myObject).length === 0 && Object.getOwnPropertyNames(myObject).length === 0) { // Ob'ekt bo'sh, simvol xususiyatlar bilan }
Usul tanlovi kontekst va ishlash tezligi talablariga bog'liq. Object.keys() va JSON.stringify() odatda eng tez va qisqa bo'lib, oddiy holatlar uchun mos keladi. Barcha xususiyat turlarini va meros olingan xususiyatlarni hisobga olish uchun qo'shimcha tekshiruvlar talab qilinishi mumkin.