Javascript 如何访问指示器对象中存储的日期?
我有一个地图应用程序,在界面中,有一个组合框包含5个指标(HDI、预期寿命等)。我使用FireBug 1.9.2检查了每个指标的“数据”,我发现,在每个指标的“数据”中列出了指标的名称,其中有一个日期列表,类似于(1960年……到2010年)。其中一些日期包含与其相应指标对应的数据,而其中一些日期不包含数据“” 我想做的是,检查每个指标的日期,如果日期包含数据或值,我想存储该日期,否则不处理该日期 请看我发布的快照,也许这会让我对自己想做的事情有更清晰的认识 另外,请看我是如何实现这一目标的,但不幸的是结果不是我想要的:Javascript 如何访问指示器对象中存储的日期?,javascript,google-maps,google-maps-api-3,firebug,Javascript,Google Maps,Google Maps Api 3,Firebug,我有一个地图应用程序,在界面中,有一个组合框包含5个指标(HDI、预期寿命等)。我使用FireBug 1.9.2检查了每个指标的“数据”,我发现,在每个指标的“数据”中列出了指标的名称,其中有一个日期列表,类似于(1960年……到2010年)。其中一些日期包含与其相应指标对应的数据,而其中一些日期不包含数据“” 我想做的是,检查每个指标的日期,如果日期包含数据或值,我想存储该日期,否则不处理该日期 请看我发布的快照,也许这会让我对自己想做的事情有更清晰的认识 另外,请看我是如何实现这一目标的,但
function getYearsByIndicator(layername, indicator) {
var matchingLayers;
var vectorLayer;
var yearStore;
// get vector layer
matchingLayers = map.getLayersByName(layername);
if (matchingLayers.length == 1) {
vectorLayer = matchingLayers[0];
}
else {
console.log("getThematicStyleMap: Warning, the layer " + layername + " was not found!");
return;
}
for (var i=0;i < vectorLayer.features.length;i++) {
if (vectorLayer.features[i]['data'][indicator]) {
// extract keys here!
}
}
//build store containing the extracted keys
//return the store
return yearStore;
函数getYearsByIndicator(层名称,指示器){
var匹配层;
向量层;
var yearStore;
//获取向量层
matchingLayers=map.getLayersByName(layername);
if(matchingLayers.length==1){
向量层=匹配层[0];
}
否则{
log(“getThematicStyleMap:警告,未找到层“+layername+”);
返回;
}
对于(var i=0;i
}
由于它是一个对象,我想您可以通过以下方式访问它:
$data->{propertyname}
编辑:我很困惑,我猜您使用的是javascript而不是PHP(这是您的标记之一)。使用javascript时,可以像访问数组一样访问值,因此变量[“属性”][“子属性”]
等
编辑2:你可以使用
if(data["HDI"][1980] != "")
{
//date is not empty
}
EDIT3:使用以下命令迭代内容:
for(var key in data["HDI"])
{
//Key is 1980 etc
if(data["HDI"][key] != "")
{
//Date is not empty
}
}
如果发布快照,则有(HDI、移动蜂窝、预期寿命)。这些是指标,下面列出了日期列表。我只是想知道如何检查这些日期是否包含数据。我删除了PHP标记。请根据我的示例中使用的变量修改您的示例好吗?很好,但还有一件事,每个指标(HDI、预期寿命等)包含不同的日期数。e、 g:HDI可能包含7个日期,预期寿命可能包含4个日期。如何获得它们的长度,以便我可以使用循环。请你举个例子,我将不胜感激。