Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问指示器对象中存储的日期?_Javascript_Google Maps_Google Maps Api 3_Firebug - Fatal编程技术网

Javascript 如何访问指示器对象中存储的日期?

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年)。其中一些日期包含与其相应指标对应的数据,而其中一些日期不包含数据“” 我想做的是,检查每个指标的日期,如果日期包含数据或值,我想存储该日期,否则不处理该日期 请看我发布的快照,也许这会让我对自己想做的事情有更清晰的认识 另外,请看我是如何实现这一目标的,但

我有一个地图应用程序,在界面中,有一个组合框包含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个日期。如何获得它们的长度,以便我可以使用循环。请你举个例子,我将不胜感激。