如何计算 JavaScript 对象的属性?

问题描述

没有简单的答案,因为ObjectJavaScript 中的每个对象都派生自“自动包含许多属性”,而您获得的确切属性集取决于特定的解释器以及在您的解释器之前执行的代码。因此,您必须以某种方式将您定义的那些与您“免费”获得的那些分开。

这是一种方法:

var foo = {"key1": "value1", "key2": "value2", "key3": "value3"};
Object.prototype.foobie = 'bletch'; // add property to foo that won't be counted

var count = 0;
for (var k in foo) {
    if (foo.hasOwnProperty(k)) {
       ++count;
    }
}
alert("Found " + count + " properties specific to foo");

第二行显示了其他代码如何向所有Object派生类添加属性。如果您删除循环内的检查,属性计数将至少上升到 4。在除此代码之外还有其他 JavaScript 的页面上,如果其他代码也修改了原型hasOwnProperty(),则它可能高于 4 。Object

解决方法

假设我在 JavaScript 中有以下对象:

var object = {
  "key1": "value1","key2": "value2","key3": "value3"
};

如何找出对象中存在多少个值?

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...