如何統計JavaScript陣列物件?
在本教程中,我們將學習如何統計 JavaScript陣列物件。陣列是一種資料結構,包含字串、數字、物件等在JavaScript中的元素。物件是一種包含與其相關屬性和方法的實體。我們可以使用物件的引用訪問物件的屬性並呼叫物件的方法。
通常,要查詢陣列長度,我們可以使用array.length() 方法,它返回陣列包含的元素總數。但是,如果我們只需要統計物件元素呢?
本教程介紹了多種方法來統計JavaScript陣列中物件元素的總數。
使用for迴圈和instanceof運算子
使用array.filter()方法
使用for迴圈和instanceof運算子
在這種方法中,我們將使用for迴圈來統計陣列中物件的總數。使用者可以迭代陣列的每個元素,並使用instanceof運算子檢查每個元素的型別。他們可以將length變數初始化為0,以儲存物件的總數。在迭代陣列元素時,如果他們找到任何物件型別的實體,他們可以將length加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