Voglio fare un'istruzione if per verificare se un oggetto è un oggetto vuoto o meno.Oggetto vuoto in Coffeescript
Per oggetto vuoto intendo se faccio console.log (oggetto) stampa {}.
Come posso fare?
Voglio fare un'istruzione if per verificare se un oggetto è un oggetto vuoto o meno.Oggetto vuoto in Coffeescript
Per oggetto vuoto intendo se faccio console.log (oggetto) stampa {}.
Come posso fare?
myObject = {}
if Object.keys(myObject).length == 0
# myObject is "empty"
else
# myObject is not "empty"
Object .keys è ES5 e non funzionerà su IE <9 (Risolto usando ES5Shim) –
Questa funzione potrebbe funzionare per voi:
is_empty = (obj) ->
return true if not obj? or obj.length is 0
return false if obj.length? and obj.length > 0
for key of obj
return false if Object.prototype.hasOwnProperty.call(obj,key)
return true
#Examples
console.log is_empty("") #true
console.log is_empty([]) #true
console.log is_empty({}) #true
console.log is_empty(length: 0, custom_property: []) #true
console.log is_empty("Hello") #false
console.log is_empty([1,2,3]) #false
console.log is_empty({foo: 1}) #false
console.log is_empty(length: 3, custom_property: [1,2,3]) #false
Attento che l'oggetto '{foo: undefined}' restituirà 'true', non' false' come ci si potrebbe aspettare. – Cimm
possibile duplicato di [? È oggetto vuoto] (http://stackoverflow.com/questions/4994201/is-object-empty) – Blender