我有一个类似于这个的对象:
var jsonArray = {
'-1': {
'-1': 'b',
'2': 'a',
'10': 'c'
},
'2': {
'-1': 'a',
'2': 'b',
'10': 'a'
},
'5': {
'-1': 'a',
'2': 'a',
'10': 'b'
}
};
我试图得到它的长度,问题是jsonArray.length
返回5而不是3(这是它拥有的总项目)。该阵列相对较长(有1000x2000项),这必须每秒进行很多次。如何更有效地获得物品数量?
除了kieran的答案,显然,现代浏览器具有Object.keys
功能。在这种情况下,您可以这样做:
Object.keys(jsonArray).length;
关于How to list the properties of a javascript object的这个答案的更多细节
那是你的实际代码吗?一个javascript对象(这是你给我们的)没有length属性,所以在这种情况下exampleArray.length
返回undefined而不是5。
This stackoverflow解释了一个对象和一个数组之间的长度差异,而this stackoverflow则展示了如何获得一个对象的“大小”。