2012-01-02 10 views
28

thể trùng lặp:
Length of Javascript Associative ArrayLàm cách nào để nhận số bảng băm JavaScript?

hash_table = {a: 131, b: 222, c:313} 

phương pháp Chiều dài không được làm việc tất nhiên vì nó sẽ bị nhầm lẫn với một chìa khóa.

Vậy làm cách nào để thực hiện?

+0

Từ câu hỏi trùng lặp, câu trả lời hữu ích không có ở đây. Sử dụng kích thước gạch dưới, _.size(). http://stackoverflow.com/a/11346637/1684480 –

Trả lời

48

Object.keys sẽ trả về tất cả các khóa trong đối tượng dưới dạng danh sách, sau đó sử dụng độ dài để có độ dài.

dụ:

Object.keys(hash_table).length 

Chú ý rằng đây là ECMA 5 và có thể không có ở một số các trình duyệt. xem https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys để biết toàn bộ tài liệu.

+0

Nó cũng sẽ trả về các thuộc tính kế thừa? – rsk82

+0

Không, nó sẽ chỉ trả về các thuộc tính riêng. – qiao

+0

Như tôi đã hiểu, Object.keys không được hỗ trợ trong IE8 và thấp hơn, vì vậy hãy cẩn thận ... –

2
var count = 0; 
for (property in hash_table) count++; 
+0

JSON là một định dạng trao đổi dữ liệu và không liên quan gì đến JavaScript, bên cạnh tên và cú pháp tương tự . JavaScript không có "mảng kết hợp", chỉ mảng. –

+0

cảm ơn feedbacK của bạn: Tôi đã chỉnh sửa câu trả lời của mình cho phù hợp! – simonecampora

+0

Tuy nhiên, bạn có ý nghĩa gì khi "sử dụng Mảng trong thời trang kết hợp"? Thuộc tính 'length' chỉ được cập nhật cho các thuộc tính số, tức là. 'arr [0] = 42.'. Các thuộc tính không phải số không cập nhật 'length' và không nên được sử dụng cho mảng vì nó chỉ gây nhầm lẫn. –