Kaip sužinoti, ar objektas yra tuščias?
sobes.tech AI
Atsakymas iš AI
Objektas laikomas "tuščiu", jei jis neturi savo išvardijamų savybių.
Patikros būdai:
-
Object.keys(): Grąžina eilutės masyvą, kuriame pateikiami objekto išvardijamų savybių pavadinimai. Jei masyvas tuščias, objektas yra tuščias.const myObject = {}; if (Object.keys(myObject).length === 0) { // Objektas yra tuščias } -
for...inirhasOwnProperty(): Iteruoja per objekto išvardijamas savybes (įskaitant paveldėtas) ir tikrina, ar savybė yra nuosava.const myObject = {}; let isEmpty = true; for (const key in myObject) { if (Object.prototype.hasOwnProperty.call(myObject, key)) { isEmpty = false; break; } } if (isEmpty) { // Objektas yra tuščias }Object.prototype.hasOwnProperty.call()naudojama saugesnei patikrai, neshasOwnPropertygali būti perrašyta objekte. -
JSON.stringify(): Konvertuoja objektą į JSON eilutę. Tuščias objektas{}konvertuojamas į eilutę"{}"const myObject = {}; if (JSON.stringify(myObject) === '{}') { // Objektas yra tuščias }Šis metodas tinka paprastiems objektams be funkcijų ir ciklinių nuorodų.
-
Object.getOwnPropertyNames(): Grąžina visų nuosavų (ne paveldėtų) ir nepervardijamų bei pervardijamų savybių pavadinimų masyvą (įskaitant simbolius).const myObject = {}; if (Object.getOwnPropertyNames(myObject).length === 0) { // Objektas yra tuščias } -
Object.getOwnPropertySymbols(): Grąžina visų nuosavų simbolinių savybių masyvą. Jei objektas yra tuščias (ir neturi simbolinių savybių), šis masyvas bus tuščias.const myObject = {}; if (Object.getOwnPropertySymbols(myObject).length === 0 && Object.getOwnPropertyNames(myObject).length === 0) { // Objektas yra tuščias, įskaitant simbolinius }
Pasirinkimas priklauso nuo konteksto ir našumo reikalavimų. Object.keys() ir JSON.stringify() dažniausiai yra greičiausi ir trumpiausi būdai paprastiems atvejams. Norint įvertinti visų tipų savybes ir paveldėtas savybes, gali prireikti papildomų patikrinimų.