JavaScript 中查找 JSON 对象长度的最佳方法
本文介绍了在 JavaScript 中查找 JSON 对象长度的最佳方法。
输入-输出场景
让我们来看一下这个输入-输出场景。假设有一个对象,其中包含一些键值对。我们需要获取该对象的长度。
const MyObj = { Name: "Mike", Age: 34 }; document.write(Object.keys(MyObj).length); // Output: 2
使用 Object.keys()
Object.keys() 方法将返回给定对象自身可枚举属性名称的数组形式的输出。它将按对象中存在的顺序返回键的输出。
语法
以下是 Object.keys() 的语法
Object.keys(obj)
其中参数 (obj) 是要返回其可枚举自身属性的对象。此方法将以字符串数组的形式返回所有对象的枚举属性。
示例 1
在下面的示例中,我们声明了一个对象并通过简单的属性初始化器创建了属性,因此默认情况下所有属性都是可枚举的。现在我们使用了object.keys()方法以数组形式返回对象的枚举键。
<!DOCTYPE html> <html> <head> <title>Length of object in JavaScript</title> </head> <body> <p id = "para1"> </p> <p id = "para2"> </p> <script> var Films = {'Liger':'Puri Jagannadh', 'Bahubali':'Rajamouli','Pushpa': 'Sukumar'}; var arr = Object.keys(Films); document.getElementById("para1").innerHTML = "Keys of the object are: " + arr; </script> </body> </html>
从输出中我们可以看到,Object.keys() 方法返回了一个包含对象键的数组 -
示例 2
在下面的示例中,我们声明了一个对象,并通过简单的属性初始化器创建了一些属性,这些属性默认情况下是可枚举的。我们返回了包含对象键的数组。现在,我们将length属性分配给 object.keys() 方法以获取对象的整数长度。
<!DOCTYPE html> <html> <head> <title>Length of object in JavaScript</title> </head> <body> <p id = "para1"> </p> <p id = "para2"> </p> <script> let Cinema = { Title: "Pokiri", Actor: "Mahesh babu", Actress: "Ileana", Result: "Industry-Hit" }; let keysinobj = Object.keys(Cinema); document.getElementById("para1").innerHTML = "Keys in object: " + keysinobj + "<br>"; document.getElementById("para2").innerHTML = "Length of keys are: " + keysinobj.length; </script> </body> </html>
在输出中,我们可以看到 object.keys() 正在返回对象的所有键,并且 length 属性正在给出对象中键的数量。
hasOwnProperty()
JavaScript 中的hasOwnProperty()方法将让你知道对象是否具有特定的属性作为其自身属性。此方法将以布尔值返回输出。
语法
以下是 hasOwnProperty() 的语法:
hasOwnProperty(prop)
其中参数 (prop) 是要测试的属性的名称。如果对象具有指定的属性作为自身属性,则返回 true,否则返回 false。
示例
使用 for…in 循环
在示例中,我们有一个对象和默认情况下可枚举的属性。现在,为了获取对象的长度,我们通过 for...in 循环迭代了对象。我们将对象的属性作为参数传递给 hasOwnProperty(),每当对象的特定属性是其自身属性时,它都会递增最初初始化为 0 的大小。然后我们通过将Student传递给Object.size来返回对象的长度。
<!DOCTYPE html> <html> <head> <title>Length of object in JavaScript</title> </head> <body> <p id = "para1"> <p> <script> const Student = { name: "Sarika", age: 16, grade: 10, school: "Sunbeam school bhagwanpur", }; Object.size = function(Student) { let size = 0, key; for (key in Student) { if (Student.hasOwnProperty(key)){ size++ }; }; return size; }; const length = Object.size(Student); document.getElementById("para1").innerHTML = "Length of object is: " + length; </script> </body> </html>
从输出中我们可以看到,每当 hasOwnProperty() 返回该属性是对象自身属性时,大小都会递增。并且大小被分配给 length 变量,我们打印它以获取对象的长度。