2011-01-15 50 views

Trả lời

20

Bạn sẽ phải lặp qua tất cả các yếu tố để đếm chúng:

function objectLength(myObject:Object):int { 
var cnt:int=0; 

for (var s:String in myObject) cnt++; 

return cnt; 
} 

var o:Object={foo:"hello", bar:"world"}; 
trace(objectLength(o)); // output 2 
+1

Dường như gọi ra một API tốt hơn, chẳng hạn như Object.keys() – hrabinowitz

0

Ngay cả mã ngắn hơn ở đây:

var o:Object={foo:"hello",bar:"world",cnt:2}; 
trace(o.cnt); // output 2; 

Chỉ cần nhớ để cập nhật các tham số cuối cùng trong danh sách đối tượng nếu bao giờ bất cứ điều gì được thêm vào nó. Đó là nhược điểm chính của phương pháp này, tôi nghĩ vậy. Và bây giờ, tất nhiên, .cnt không thực sự trả về độ dài danh sách thực, mà đúng hơn là độ dài danh sách - 1.

+0

của javascript Điều này có thể trở nên phức tạp. 'cnt' có thể trở nên không chính xác trong trường hợp một thuộc tính ghi đè thuộc tính đã tồn tại hoặc khi thuộc tính bị xóa mà không tồn tại. Vì vậy, kiểm tra sẽ là cần thiết mỗi khi đối tượng được sửa đổi. –

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