如何计算 JavaScript 数组对象?
在本教程中,我们将学习计算 JavaScript 数组对象。数组是 JavaScript 中包含字符串、数字、对象等的数据结构。对象是一种包含与其相关的属性和方法的实体。我们可以访问对象的属性并使用对象的引用调用对象方法。
通常,要查找数组长度,我们可以使用 array.length() 方法,它返回数组包含的元素总数。但是如果我们只需要计算对象元素的数量怎么办?
本教程提供了多种方法来计算 JavaScript 数组中对象元素的总数。
使用 for 循环和 instanceof 运算符
使用 array.filter() 方法
使用 for 循环和 instanceof 运算符
在此方法中,我们将使用 for 循环来计算数组中的对象总数。用户可以遍历数组的每个元素,并使用 instanceof 运算符检查每个元素的类型。他们可以用 0 初始化长度变量以存储对象总数。在迭代数组元素时,如果发现任何对象类型的实体,则可以将长度增加 1。
语法
用户可以使用以下语法使用 for 循环和 instanceof 运算符来计数数组对象。
let objectsLen = 0; for (let i = 0; i < myArr.length; i++) { // 如果实体是对象,则将objectsLen增加1,即存储数组中的对象总数。 if (myArr[i] instanceof Object) { objectsLen++; } }
算法
步骤 1 - 创建一个名为objectsLen的变量并用0初始化它。
步骤 2 - 创建一个数组并添加一些带有其他元素的对象。
步骤 3 - 要计算数组中的对象数,我们使用 for 循环遍历数组并使用 instanceof 运算符检查元素类型
步骤 4 - 如果找到对象类型的实体,我们将向objectsLen变量添加1。
步骤 5 - 最后,我们将打印objectsLen变量,即对象的总数。
示例
在下面的示例中,计算数组中的对象。我们使用 for 循环遍历数组并应用 instanceof 运算符来检查数组元素的类型。
<html> <head> </head> <body> <h2> Count JavaScript array objects. </h2> <h4> Counting total number of array objects in array using the <i> for loop. </i> </h4> <p id = "objects"> </p> <script> let objects = document.getElementById("objects"); var objectsLen = 0; // 对象和其他元素的数组 var myArr = [{ "id": 1, "int": 10 }, { "id": 2, "int": 20 }, { "id": 3, "int": 30 }, "TutorialsPoint", 20, "Hello"]; for (let i = 0; i < myArr.length; i++) { // 检查对象的类型。 if ( myArr[i] instanceof Object ) { objectsLen++; } } objects.innerHTML += "Original Array: " + JSON.stringify(myArr)+"<br>"; objects.innerHTML += "<br>Total number of objects: " + objectsLen ; </script> </body> </html>
使用 array.filter() 方法
在 JavaScript 中,array.filter() 方法用于过滤数组的元素。用户可以将回调函数添加到方法中,并在回调函数中添加一些过滤条件。在我们的例子中,过滤所有对象的过滤条件是检查元素类型。用户可以使用 typeof 运算符检查对象的类型,如果实体是对象类型,则从回调函数返回 true。否则,返回 false。
array.filter() 方法返回所有过滤值的数组。因此,我们将获得所有对象的数组,并且可以使用 .length() 方法测量其长度。
语法
用户可以按照以下语法使用 array.filter() 方法计算对象的数量。
// 过滤所有类型为对象的实体 let allObject = array.filter((val) => { // 使用 typeof 运算符检查元素的类型。 if ( typeofval == 'object' ) { return true; } else { return false; } }); LettotalObjects = allObject.length;
参数
array − 它是一个元素数组,包含对象的实体和其他元素。
val − 它是数组的一个元素,用户想要检查其类型,如果实体是对象,则对其进行过滤。
示例
在下面的示例中,我们使用了 array.filter() 方法从给定数组中过滤所有对象。最后,我们计算了对象数组的长度,该长度由 array.filter() 方法返回。
<html> <body> <h2> Count JavaScript array objects. </h2> <h4> Counting total number of array objects in array using the <i> arrays.filter() </i> method. </h4> <p id = "objects"> </p> <script> let objects = document.getElementById("objects"); // 对象和其他元素的数组 var array = ["TutorialsPoint", 20, { "id": 2, "int": 20 }, { "id": 3, "int": 30 }, "Hello"]; let allObject = array.filter((val) => { if ( typeof val == 'object' ) { return true; } else { return false; } }); let objectsLen = allObject.length; objects.innerHTML += "Original String: " + JSON.stringify(array) + " <br> "; objects.innerHTML += "<br>Total Objects in the array: " + objectsLen </script> </body> </html>
用户已经学会了计算 JavaScript 数组中的对象实体。第一种方法和第二种方法具有相同的时间复杂度。当我们查看这两种方法的空间复杂度时,第一种方法的空间复杂度较低,并且优化得更好。