获取'命名'数组的长度?

时间:2013-08-04 18:07:04

标签: javascript

我不确定他们叫什么,但我的意思是:

array["water"] = 50;
array["fire"] = 30;

长度应为2

如何查看数组中有多少属性? array.length不起作用=(我一直在尝试各种各样的事情,我觉得我错过了一些非常简单的东西..

感谢您的帮助

1 个答案:

答案 0 :(得分:6)

您可以使用Object.keys()获取密钥数组,然后对其进行计数:

Object.keys(array).length

或者,如果您的目标是ECMAScript 3,或者没有Object.keys(),那么您可以手动计算密钥:

var length = 0;
for (var key in array) {
    if (array.hasOwnProperty(key)) {
        ++length;
    }
}

但是这种方法有一些边缘情况,具体取决于您要定位的浏览器,因此使用Mozilla's polyfill for Object.keys()可能是一个好主意。