我正在研究一个接受 JSON 对象作为参数的函数。传入的对象的每个属性都是一个数组。我需要确定每个数组的长度。
我不会提前知道的是:属性的名称,或者有多少属性。
如何确定每个数组的长度?同样,我不能明确引用任何属性/键,因为我不会提前知道它们的名称。如何将每个未知属性引用为数组?
提前谢谢你,-RS
我正在研究一个接受 JSON 对象作为参数的函数。传入的对象的每个属性都是一个数组。我需要确定每个数组的长度。
我不会提前知道的是:属性的名称,或者有多少属性。
如何确定每个数组的长度?同样,我不能明确引用任何属性/键,因为我不会提前知道它们的名称。如何将每个未知属性引用为数组?
提前谢谢你,-RS
用于JSON.parse
将 JSON 数据转换为 JS 对象,然后可以使用 Array 的长度等属性。
var myObject = JSON.parse(myJSONtext, reviver);
JSON 参考: http: //www.json.org/js.html
您可以使用循环遍历对象for...in
以访问每个属性。
for (var key in myObject) {
// Check to make sure the property is not part of the `Object` prototype (eg. toString)
if (myObject.hasOwnProperty(key)) {
console.log(key, myObject[key].length);
}
}
在上面的例子中,我们遍历了对象的属性myObject
并记录了它们的长度值(假设它们都是数组)。
如果“JSON 对象”是指它是 JSON 字符串,则可以首先通过使用myObject = JSON.parse(myObject)
(适用于现代浏览器)或被myObject = eval("(" + myOjbect + ")")
认为不安全(但适用于所有浏览器)将 myObject 解析为真正的对象。解析后,您可以使用上述技术来细化数组长度。
注意:由于您更新了帖子以指定对象为 JSON,因此您可能不需要检查hasOwnProperty
,但始终使用此测试更安全。