跳至正文
首页 » 博客 » How to Count the Number of Properties of the JavaScript Object

How to Count the Number of Properties of the JavaScript Object

在使用JavaScript时,我遇到了计算JavaScript对象中属性数量的要求。我找到了两种方法来查找对象中的属性数量。它们如下:

  1. 使用for循环
  2. 使用Object.keys

考虑一个对象,“猫”,如下所示:

var cat = { 名称: 'foo'年龄: 9}

您可以通过在for循环和更新计数器中进行迭代来找到许多属性,如下面的清单所示:

count = 0;对于 (cat中的var c) { count = count 1;}console.log(count); // 2 

上面的代码将打印 “2” 作为输出。

上述方法不仅打印对象自己的可枚举属性,但它也打印对象的属性chich它是链接。为了进一步理解它,让我们考虑列出:

var动物 = { canRun: true} var cat = { 名称: 'foo'年龄: 9} cat.__ proto __ = 动物; 

有两个对象,cat和animal,cat对象使用 __proto __ property链接到animal对象。现在,当您使用for循环来迭代和计算属性的数量时,它也将计算动物对象的可枚举属性。因此,下面的代码列表将打印 “3”。

var动物 = { canRun: true} var cat = { 名称: 'foo'年龄: 9} 猫。__proto __ = 动物; count = 0;对于 (cat中的var c) { count = count 1;}console.log(count); // 3 

JavaScript for循环将迭代对象的所有链接属性。

要计算对象自己的可枚举属性,您可以考虑使用另一种方法object.keys(), 它只枚举对象自己的可枚举属性。它不枚举对象的链接属性。

接下来,让我们再次考虑链接到动物对象的cat对象,并使用object.keys计算属性的数量:

var动物 = { canRun: true} var cat = { 名称: 'foo'年龄: 9} 猫。__proto __ = 动物; var计数 = Object.keys(cat).length;console.log(count); 

现在你会得到 “2” 打印输出。

Object.keys只枚举对象自己的可枚举属性

如果对象的属性enumerable设置为false,则它不是object.keys数组的成员。让我们再次考虑cat对象,并将其name属性enumerable设置为false。

var cat = { 名称: 'foo'年龄: 9} Object.de fineProperty(cat, 'name', { enumerable: false });

现在,当您使用Object.keys查找多个属性时,它将只计算一个。

var计数 = Object.keys(cat).length;console.log(count); // print 1

最后,您可以使用这两种方法来查找JavaScript对象中的许多属性。

如果你喜欢这篇文章,请分享。此外,如果您还没有签出Infragistics Ignite UI for Angular ,请务必这样做!我们有30个基于材质的Angular组件,可以帮助您更快地编写快速的web应用程序。</p