如何计算 JavaScript 对象的属性?

2022-08-30 01:45:54

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

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

如何确定对象中存在多少个值?


答案 1

您可以使用以下简单代码来执行此操作:

Object.keys(myObject).length

答案 2

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

这是一种方法:

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");

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