如何統計 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++) {
// if entity is object, increase objectsLen by 1, which is the stores the total number of objects in array.
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;
// array of objects and ohter elements
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++) {
// checking the type of the object.
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() 方法來統計物件的個數。
// filter all entity which type is object
let allObject = array.filter((val) => {
// checking the type of elements using the typeof operator.
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");
// array of objects and ohter elements
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 陣列中計算物件實體。第一種方法和第二種方法的時間複雜度相同。當我們檢視兩種方法的空間複雜度時,第一種方法的空間複雜度更低,並且最佳化得更好。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP