我有一个地图应用程序,在界面中,有一个组合框包含5个指标(HDI,Life Expectancy,..,..,..)。我使用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;
}
答案 0 :(得分: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
}
}