我无法弄清楚如何使用JavaScript查找JSON对象中包含的元素数量。这就是我的对象的结构:
var shows = [];
//make http call here to api url and store in variable called 'data'
for (int i = 0; i < data.length; i++) {
var element = {
"location": {
"latitude": data[j].venue.latitude,
"longitude": data[j].venue.longitude
},
"artist": data[j].artists[0].name,
"venue_name": data[j].venue.name,
"date": data[j].datetime
};
shows.push(element);
};
因此,我可以使用shows[i].location
或任何我想要访问的密钥轻松访问这些元素。但是,涵盖此主题的所有问题/答案似乎都建议使用Object.keys(shows).length
来查找元素的数量(我也很难让for-each循环为这个元素对象工作)。 / p>
但是,这在我的情况下不起作用(我假设因为&#39;显示&#39;没有任何直接键)所以我只是想知道是否有任何另一种访问&#34;内部的元素数量(每个有4个键:值对)的方式显示&#34;?或者是否有另一种迭代每个元素的方法?或者,如果那是不可能的,还有另一种方法可以构建我的对象,以便更容易找到元素的数量?非常感谢任何帮助!
答案 0 :(得分:0)
鉴于
[A]以其他方式访问“show”中的元素数量(每个元素有4个键:值对)。
您所说的“元素数量”是您将对象推入的数组的长度。每个推送的对象都有四个键值对。
您将使用(或在数组中)确定元素的数量(数组的长度):
var lengthOfShows = shows.length;
for (var i = 0; i < shows.length; i++) {
var currentShow = shows[i];
// references
// shows[i].location
}
在您的代码中......
for (int i = 0; i < data.length; i++) {
应该......
for (var j = 0; j < data.length; j++) {
因为你在for循环中引用数据[j]。
答案 1 :(得分:0)
从您的代码中,shows
是一个数组。数组具有长度属性
shows.length
可能就是你所需要的。看起来它与data.length
和
该数据可能也是一个数组。