那么为什么这会导致0,如何找到实际的大小?
var array = []; array["foo"] = "bar"; array["bar"] = "foo"; document.write(array.length);
解决方法
既然这是一个由属性组成的对象,并且采用键/值对的形式(在概念上类似于关联数组或哈希表),你将不得不这样做:
Object.size = function(obj) { var size = 0,key; for (key in obj) { if (obj.hasOwnProperty(key)) size++; } return size; }; var array = []; array["foo"] = "bar"; array["bar"] = "foo"; var size = Object.size(array);