0

我有一个地图应用程序,在界面中,有一个组合框包含 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;

}

图像1 img2 图像3

4

1 回答 1

1

由于它是一个对象,我想您可以通过以下方式访问它:

$data->{propertyname}

编辑:我很困惑,我猜你使用的是 javascript 而不是 PHP(这是你的标签之一)。当您使用 javascript 时,您可以访问值,例如访问数组variable["property"]["subproperty"]

EDIT2:您可以使用

   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
  }
}
于 2012-06-05T09:43:18.577 回答