2013-07-08 43 views
10

Tôi muốn thực hiện một câu lệnh if để kiểm tra xem một đối tượng có phải là một đối tượng rỗng hay không.Đối tượng trống trong Coffeescript

Bằng đối tượng trống, ý tôi là nếu tôi làm console.log (đối tượng) nó sẽ in ra {}.

Làm cách nào để thực hiện việc này?

+1

thể trùng lặp của [? Là đối tượng trống] (http://stackoverflow.com/questions/4994201/is-object-empty) – Blender

Trả lời

17
myObject = {} 
if Object.keys(myObject).length == 0 
    # myObject is "empty" 
else 
    # myObject is not "empty" 
+1

Object .keys là ES5 và sẽ không hoạt động trên IE <9 (Cố định sử dụng ES5Shim) –

5

Chức năng này có thể làm việc cho bạn:

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 
+1

Cẩn thận đối tượng '{foo: undefined}' sẽ trả về 'true', không phải' false' như bạn mong đợi. – Cimm

Các vấn đề liên quan