Объект бош бош экенин кантип билсе болот?
sobes.tech AI
AIден жооп
Объект "бош" деп саналат, эгер анын өзүнүн тизмектелүү мүнөздөмөлөрү жок болсо.
Текшерүү жолдору:
-
Object.keys(): Объекттин тизмектелүү мүнөздөмөлөрүнүн аттарын көрсөтүүчү саптардын массивин кайтарат. Эгер массив бош болсо, объект "бош" деп эсептелет.const myObject = {}; if (Object.keys(myObject).length === 0) { // Объект бош } -
for...inжанаhasOwnProperty(): Объекттин тизмектелүү мүнөздөмөлөрү боюнча итерирлөө (улам мурас алгандар да кирет) жана мүнөздөмө өзүнчө экенин текшерет.const myObject = {}; let isEmpty = true; for (const key in myObject) { if (Object.prototype.hasOwnProperty.call(myObject, key)) { isEmpty = false; break; } } if (isEmpty) { // Объект бош }Object.prototype.hasOwnProperty.call()колдонуу көбүрөөк коопсуздук үчүн, анткениhasOwnPropertyобъектте кайра аныкталган болушу мүмкүн. -
JSON.stringify(): Объектти JSON сапка айлантат. Бош объект{}сапка"{}"болуп өзгөрөт.const myObject = {}; if (JSON.stringify(myObject) === '{}') { // Объект бош }Бул ыкма жөнөкөй объекттер үчүн ылайыктуу, функциялар жана циклик шилтемелер жок.
-
Object.getOwnPropertyNames(): Бардык өзүнчө (мурас албаган) жана тизмектелүү эмес жана тизмектелүү мүнөздөмөлөрдүн аттарынын массивин кайтарат (символдорду да камтыйт).const myObject = {}; if (Object.getOwnPropertyNames(myObject).length === 0) { // Объект бош } -
Object.getOwnPropertySymbols(): Объекттин бардык өзүнчө символдук мүнөздөмөлөрүнүн массивин кайтарат. Эгер объект бош болсо (жана символдук мүнөздөмөлөрү жок болсо), бул массив бош болот.const myObject = {}; if (Object.getOwnPropertySymbols(myObject).length === 0 && Object.getOwnPropertyNames(myObject).length === 0) { // Объект бош, символдук мүнөздөмөлөрдү кошпогондо }
Тандоо контекстке жана аткаруу талаптарына жараша болот. Object.keys() жана JSON.stringify() көбүнчө эң тез жана кыска ыкмалар болуп саналат. Бардык мүнөздөмөлөрдү жана мурас алган мүнөздөмөлөрдү эске алуу үчүн кошумча текшерүүлөр талап кылышы мүмкүн.