Javascript 获取a'的长度;命名为';阵列?

Javascript 获取a'的长度;命名为';阵列?,javascript,Javascript,我不知道他们叫什么,但我的意思是: array["water"] = 50; array["fire"] = 30; 这里的长度应该是2 如何查看数组中有多少属性?array.length不起作用=(我一直在尝试各种方法,我觉得我错过了一些非常简单的东西 感谢您的帮助您可以使用它获取一组密钥,然后对它们进行计数: Object.keys(array).length 或者,如果您的目标是ECMAScript 3或没有对象.keys(),则可以手动计数键: var length = 0; for

我不知道他们叫什么,但我的意思是:

array["water"] = 50;
array["fire"] = 30;
这里的长度应该是2

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

感谢您的帮助

您可以使用它获取一组密钥,然后对它们进行计数:

Object.keys(array).length
或者,如果您的目标是ECMAScript 3或没有对象.keys(),则可以手动计数键:

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

不过,这种方法也有一些边缘情况,具体取决于您所针对的浏览器,所以改用它可能是个好主意。

它不是数组,而是对象。@Juhana:我可以是数组,但是Woot,谢谢。这正是我需要的,很抱歉trouble@rid最好执行
Object.prototype.hasOwnProperty.call(数组,键)
以防万一
array
有一个属性
hasOwnProperty
@PaulS.,好吧,还有很多边缘案例,但它们都由人处理。答案已更新。