Ինչպե՞ս իմանալ, որ օբյեկտը դատարկ է։
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() սովորաբար ամենահեշտ և արագ մեթոդներն են՝ պարզ դեպքերի համար: Բոլոր տեսակի հատկությունների և ժառանգած հատկությունների համար կարող են անհրաժեշտ լինել լրացուցիչ ստուգումներ։